Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using LuaAdv.Compiler.Nodes;
- using LuaAdv.Compiler.Nodes.Expressions;
- using LuaAdv.Compiler.Nodes.Expressions.Assignment;
- using LuaAdv.Compiler.Nodes.Expressions.BasicTypes;
- using LuaAdv.Compiler.Nodes.Expressions.Comparison;
- using LuaAdv.Compiler.Nodes.Expressions.Conditional;
- using LuaAdv.Compiler.Nodes.Expressions.Logical;
- using LuaAdv.Compiler.Nodes.Expressions.Unary;
- using LuaAdv.Compiler.Nodes.Expressions.Unary.Post;
- using LuaAdv.Compiler.Nodes.Expressions.Unary.Pre;
- using LuaAdv.Compiler.Nodes.Math;
- using LuaAdv.Compiler.Nodes.Statements;
- namespace LuaAdv.Compiler
- {
- public interface IAstVisitor
- {
- void Visit(Node node);
- #region Statements
- void Visit(Statement node);
- // Loops
- void Visit(Break node);
- void Visit(Continue node);
- void Visit(For node);
- void Visit(Foreach node);
- void Visit(While node);
- void Visit(GlobalVariablesDeclaration node);
- void Visit(If node);
- void Visit(LocalVariablesDeclaration node);
- void Visit(NullStatement node);
- void Visit(Return node);
- void Visit(Sequence node);
- void Visit(StatementExpression node);
- void Visit(StatementFunctionDeclaration node);
- void Visit(StatementLambdaFunctionDeclaration node);
- void Visit(StatementLambdaMethodDeclaration node);
- void Visit(StatementMethodDeclaration node);
- #endregion
- #region Expressions
- void Visit(Expression node);
- // Assignment
- void Visit(AddAssignmentOperator node);
- void Visit(ConcatAssignmentOperator node);
- void Visit(DivideAssignmentOperator node);
- void Visit(ModuloAssignmentOperator node);
- void Visit(MultiplyAssignmentOperator node);
- void Visit(SubtractAssignmentOperator node);
- void Visit(ValueAssignmentOperator node);
- // Basic types
- void Visit(Bool node);
- void Visit(Number node);
- void Visit(StringType node);
- // Comparison
- void Visit(Equals node);
- void Visit(Greater node);
- void Visit(GreaterOrEqual node);
- void Visit(Is node);
- void Visit(Less node);
- void Visit(LessOrEqual node);
- void Visit(NotEquals node);
- // Conditional
- void Visit(ConditionalAnd node);
- void Visit(ConditionalOr node);
- // Logical
- void Visit(LogicalAnd node);
- void Visit(LogicalOr node);
- void Visit(LogicalXor node);
- // Math
- void Visit(Add node);
- void Visit(Concat node);
- void Visit(Divide node);
- void Visit(Modulo node);
- void Visit(Multiply node);
- void Visit(Power node);
- void Visit(Subtract node);
- // Unary
- void Visit(PostDecrement node);
- void Visit(PostIncrement node);
- void Visit(PreDecrement node);
- void Visit(PreIncrement node);
- void Visit(Negation node);
- void Visit(Negative node);
- void Visit(Not node);
- void Visit(AnonymousFunction node);
- void Visit(AnonymousLambdaFunction node);
- void Visit(FunctionCall node);
- void Visit(GroupedEquation node);
- void Visit(MethodCall node);
- void Visit(Null node);
- void Visit(NullPropagation node);
- void Visit(ShiftLeft node);
- void Visit(ShiftRight node);
- void Visit(Table node);
- void Visit(TableDotIndex node);
- void Visit(TableIndex node);
- void Visit(Ternary node);
- void Visit(This node);
- void Visit(Vararg node);
- void Visit(Variable node);
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement