7 #include "TocParser.h"
\r
19 struct VariableExpr;
\r
20 struct BracketsExpr;
\r
21 struct OperatorExpr;
\r
41 std::vector<Variable> variables;
\r
42 std::vector<Stmt> statements;
\r
48 std::vector<Variable> parameters;
\r
54 std::vector<Variable> members;
\r
55 std::vector<Function> methods;
\r
59 std::vector<Variable> variables;
\r
60 std::vector<Struct> structs;
\r
61 std::vector<Function> functions;
\r
64 enum class ExprType {
\r
65 Call, Literal, Variable, Brackets, Operator, Dot
\r
69 std::string functionName;
\r
70 std::vector<Expr> arguments;
\r
73 struct LiteralExpr {
\r
77 struct VariableExpr {
\r
81 struct BracketsExpr {
\r
82 std::shared_ptr<Expr> lexpr;
\r
83 std::shared_ptr<Expr> rexpr;
\r
86 enum class OperatorType {
\r
87 Plus, Minus, Multiply, Divide,
\r
89 LessThan, GreaterThan
\r
92 struct OperatorExpr {
\r
93 std::shared_ptr<Expr> lexpr;
\r
94 std::shared_ptr<Expr> rexpr;
\r
99 std::shared_ptr<Expr> lexpr;
\r
107 LiteralExpr _literal;
\r
108 VariableExpr _variable;
\r
109 BracketsExpr _brackets;
\r
110 OperatorExpr _operator;
\r
114 enum class StmtType {
\r
115 If, While, Return, Assign, Expr
\r
128 struct ReturnStmt {
\r
132 struct AssignStmt {
\r
142 ReturnStmt _return;
\r
143 AssignStmt _assign;
\r