Sun, 09 Feb 2014 22:43:58 +0200
- improved error handling a tad
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
1 | #ifndef BOTC_EXPRESSION_H |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
2 | #define BOTC_EXPRESSION_H |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
3 | #include "Parser.h" |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
4 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
5 | class DataBuffer; |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
6 | class ExpressionSymbol; |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
7 | class ExpressionValue; |
94
8915ee6a277d
- expression evaluation implemented! Expressions are now complete for the most part aside from some unary operator quirks in verification.
Teemu Piippo <crimsondusk64@gmail.com>
parents:
93
diff
changeset
|
8 | class ExpressionOperator; |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
9 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
10 | // ============================================================================= |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
11 | // |
92
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
12 | enum EOperator |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
13 | { |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
14 | opNegateLogical, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
15 | opUnaryMinus, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
16 | opMultiplication, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
17 | opDivision, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
18 | opModulus, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
19 | opAddition, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
20 | opSubtraction, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
21 | opLeftShift, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
22 | opRightShift, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
23 | opCompareLesser, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
24 | opCompareGreater, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
25 | opCompareAtLeast, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
26 | opCompareAtMost, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
27 | opCompareEquals, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
28 | opCompareNotEquals, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
29 | opBitwiseAnd, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
30 | opBitwiseXOr, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
31 | opBitwiseOr, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
32 | opLogicalAnd, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
33 | opLogicalOr, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
34 | opTernary, |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
35 | }; |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
36 | |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
37 | // ============================================================================= |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
38 | // |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
39 | class Expression final |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
40 | { |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
41 | public: |
93
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
42 | enum ESymbolType |
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
43 | { |
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
44 | eOperatorSymbol, |
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
45 | eValueSymbol, |
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
46 | eColonSymbol, |
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
47 | }; |
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
48 | |
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
49 | using SymbolList = List<ExpressionSymbol*>; |
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
50 | |
92
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
51 | Expression (BotscriptParser* parser, Lexer* lx, EType reqtype); |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
52 | ~Expression(); |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
53 | ExpressionValue* GetResult(); |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
54 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
55 | private: |
92
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
56 | BotscriptParser* mParser; |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
57 | Lexer* mLexer; |
93
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
58 | SymbolList mSymbols; |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
59 | EType mType; |
106
9174be9ac686
- improved error handling a tad
Teemu Piippo <crimsondusk64@gmail.com>
parents:
94
diff
changeset
|
60 | String mBadTokenText; |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
61 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
62 | ExpressionValue* Evaluate(); // Process the expression and yield a result |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
63 | ExpressionSymbol* ParseSymbol(); |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
64 | String GetTokenString(); |
92
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
65 | void AdjustOperators(); |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
66 | void Verify(); // Ensure the expr is valid |
93
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
67 | void TryVerifyValue (bool* verified, SymbolList::Iterator it); |
94
8915ee6a277d
- expression evaluation implemented! Expressions are now complete for the most part aside from some unary operator quirks in verification.
Teemu Piippo <crimsondusk64@gmail.com>
parents:
93
diff
changeset
|
68 | ExpressionValue* EvaluateOperator (const ExpressionOperator* op, |
8915ee6a277d
- expression evaluation implemented! Expressions are now complete for the most part aside from some unary operator quirks in verification.
Teemu Piippo <crimsondusk64@gmail.com>
parents:
93
diff
changeset
|
69 | const List<ExpressionValue*>& values); |
8915ee6a277d
- expression evaluation implemented! Expressions are now complete for the most part aside from some unary operator quirks in verification.
Teemu Piippo <crimsondusk64@gmail.com>
parents:
93
diff
changeset
|
70 | SymbolList::Iterator FindPrioritizedOperator(); |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
71 | }; |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
72 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
73 | // ============================================================================= |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
74 | // |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
75 | class ExpressionSymbol |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
76 | { |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
77 | public: |
93
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
78 | ExpressionSymbol (Expression::ESymbolType type) : |
92
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
79 | mType (type) {} |
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
80 | |
93
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
81 | PROPERTY (private, Expression::ESymbolType, Type, NO_OPS, STOCK_WRITE) |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
82 | }; |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
83 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
84 | // ============================================================================= |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
85 | // |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
86 | class ExpressionOperator final : public ExpressionSymbol |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
87 | { |
93
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
88 | PROPERTY (public, EOperator, ID, NO_OPS, STOCK_WRITE) |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
89 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
90 | public: |
92
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
91 | ExpressionOperator (EOperator id); |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
92 | }; |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
93 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
94 | // ============================================================================= |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
95 | // |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
96 | class ExpressionValue final : public ExpressionSymbol |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
97 | { |
93
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
98 | PROPERTY (public, int, Value, NUM_OPS, STOCK_WRITE) |
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
99 | PROPERTY (public, DataBuffer*, Buffer, NO_OPS, STOCK_WRITE) |
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
100 | PROPERTY (public, EType, ValueType, NO_OPS, STOCK_WRITE) |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
101 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
102 | public: |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
103 | ExpressionValue (EType valuetype); |
92
3a00d396bce2
- now compiles again, further work on expressions (proper parsing + assignment operator handling (albeit unrelated) + operator adjusting)
Teemu Piippo <crimsondusk64@gmail.com>
parents:
91
diff
changeset
|
104 | ~ExpressionValue(); |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
105 | |
94
8915ee6a277d
- expression evaluation implemented! Expressions are now complete for the most part aside from some unary operator quirks in verification.
Teemu Piippo <crimsondusk64@gmail.com>
parents:
93
diff
changeset
|
106 | void ConvertToBuffer(); |
8915ee6a277d
- expression evaluation implemented! Expressions are now complete for the most part aside from some unary operator quirks in verification.
Teemu Piippo <crimsondusk64@gmail.com>
parents:
93
diff
changeset
|
107 | |
8915ee6a277d
- expression evaluation implemented! Expressions are now complete for the most part aside from some unary operator quirks in verification.
Teemu Piippo <crimsondusk64@gmail.com>
parents:
93
diff
changeset
|
108 | inline ExpressionValue* Clone() const |
8915ee6a277d
- expression evaluation implemented! Expressions are now complete for the most part aside from some unary operator quirks in verification.
Teemu Piippo <crimsondusk64@gmail.com>
parents:
93
diff
changeset
|
109 | { |
8915ee6a277d
- expression evaluation implemented! Expressions are now complete for the most part aside from some unary operator quirks in verification.
Teemu Piippo <crimsondusk64@gmail.com>
parents:
93
diff
changeset
|
110 | return new ExpressionValue (*this); |
8915ee6a277d
- expression evaluation implemented! Expressions are now complete for the most part aside from some unary operator quirks in verification.
Teemu Piippo <crimsondusk64@gmail.com>
parents:
93
diff
changeset
|
111 | } |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
112 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
113 | inline bool IsConstexpr() const |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
114 | { |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
115 | return GetBuffer() == null; |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
116 | } |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
117 | }; |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
118 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
119 | // ============================================================================= |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
120 | // |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
121 | // This class represents a ":" in the expression. It serves as the colon for the |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
122 | // ternary ?: operator. It's not an operand nor is an operator, nor can we just |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
123 | // skip it so it is its own thing here. |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
124 | // |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
125 | class ExpressionColon final : public ExpressionSymbol |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
126 | { |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
127 | public: |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
128 | ExpressionColon() : |
93
11a24b697f43
- Expression verification done
Teemu Piippo <crimsondusk64@gmail.com>
parents:
92
diff
changeset
|
129 | ExpressionSymbol (Expression::eColonSymbol) {} |
91
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
130 | }; |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
131 | |
427eb377d53e
- committed work so far done on expressions
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
132 | #endif // BOTC_EXPRESSION_H |