54 private: |
55 private: |
55 BotscriptParser* mParser; |
56 BotscriptParser* mParser; |
56 Lexer* mLexer; |
57 Lexer* mLexer; |
57 SymbolList mSymbols; |
58 SymbolList mSymbols; |
58 EType mType; |
59 EType mType; |
59 ExpressionValue* mResult; |
|
60 |
60 |
61 ExpressionValue* Evaluate(); // Process the expression and yield a result |
61 ExpressionValue* Evaluate(); // Process the expression and yield a result |
62 ExpressionSymbol* ParseSymbol(); |
62 ExpressionSymbol* ParseSymbol(); |
63 String GetTokenString(); |
63 String GetTokenString(); |
64 void AdjustOperators(); |
64 void AdjustOperators(); |
65 void Verify(); // Ensure the expr is valid |
65 void Verify(); // Ensure the expr is valid |
66 void TryVerifyValue (bool* verified, SymbolList::Iterator it); |
66 void TryVerifyValue (bool* verified, SymbolList::Iterator it); |
|
67 ExpressionValue* EvaluateOperator (const ExpressionOperator* op, |
|
68 const List<ExpressionValue*>& values); |
|
69 SymbolList::Iterator FindPrioritizedOperator(); |
67 }; |
70 }; |
68 |
71 |
69 // ============================================================================= |
72 // ============================================================================= |
70 // |
73 // |
71 class ExpressionSymbol |
74 class ExpressionSymbol |