1 package de.fhdw.wtf.common.ast;
2
3 import de.fhdw.wtf.common.ast.visitor.OperationModifierVisitor;
4 import de.fhdw.wtf.common.ast.visitor.OperationModifierVisitorReturn;
5 import de.fhdw.wtf.common.token.Token;
6
7 /**
8 * This class represents a modifier of an {@link Operation}. A modifier comes to effect at the code generation.
9 *
10 */
11 public abstract class OperationModifier extends SyntaxObject {
12
13 /**
14 * generated.
15 */
16 private static final long serialVersionUID = -4853317676624075910L;
17
18 /**
19 * Protected-Constructor of {@link OperationModifier}.
20 *
21 * @param firstToken
22 * firstToken
23 * @param lastToken
24 * lastToken
25 */
26 protected OperationModifier(final Token firstToken, final Token lastToken) {
27 super(firstToken, lastToken);
28 }
29
30 /**
31 * Accepts the sub types of {@link OperationModifier} and implements the required functions.
32 *
33 * @param visitor
34 * is visitor that describes what has to be done for the particular {@link OperationModifier}.
35 * @return Boolean
36 */
37 public abstract boolean accept(OperationModifierVisitor visitor);
38
39 /**
40 * Accepts a visitor with dynamic return type.
41 *
42 * @param visitor
43 * The Visitor to be accepted.
44 * @param <X>
45 * ReturnType
46 * @return X.
47 */
48 public abstract <X> X accept(OperationModifierVisitorReturn<X> visitor);
49
50 }