Advertisement
szymski

Untitled

Aug 15th, 2016
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using LuaAdv.Compiler.Nodes;
  7. using LuaAdv.Compiler.Nodes.Expressions;
  8. using LuaAdv.Compiler.Nodes.Expressions.Assignment;
  9. using LuaAdv.Compiler.Nodes.Expressions.BasicTypes;
  10. using LuaAdv.Compiler.Nodes.Expressions.Comparison;
  11. using LuaAdv.Compiler.Nodes.Expressions.Conditional;
  12. using LuaAdv.Compiler.Nodes.Expressions.Logical;
  13. using LuaAdv.Compiler.Nodes.Expressions.Unary;
  14. using LuaAdv.Compiler.Nodes.Expressions.Unary.Post;
  15. using LuaAdv.Compiler.Nodes.Expressions.Unary.Pre;
  16. using LuaAdv.Compiler.Nodes.Math;
  17. using LuaAdv.Compiler.Nodes.Statements;
  18.  
  19. namespace LuaAdv.Compiler
  20. {
  21. public interface IAstVisitor
  22. {
  23. void Visit(Node node);
  24.  
  25. #region Statements
  26.  
  27. void Visit(Statement node);
  28.  
  29. // Loops
  30. void Visit(Break node);
  31. void Visit(Continue node);
  32. void Visit(For node);
  33. void Visit(Foreach node);
  34. void Visit(While node);
  35.  
  36. void Visit(GlobalVariablesDeclaration node);
  37. void Visit(If node);
  38. void Visit(LocalVariablesDeclaration node);
  39. void Visit(NullStatement node);
  40. void Visit(Return node);
  41. void Visit(Sequence node);
  42. void Visit(StatementExpression node);
  43. void Visit(StatementFunctionDeclaration node);
  44. void Visit(StatementLambdaFunctionDeclaration node);
  45. void Visit(StatementLambdaMethodDeclaration node);
  46. void Visit(StatementMethodDeclaration node);
  47.  
  48. #endregion
  49.  
  50. #region Expressions
  51.  
  52. void Visit(Expression node);
  53.  
  54. // Assignment
  55. void Visit(AddAssignmentOperator node);
  56. void Visit(ConcatAssignmentOperator node);
  57. void Visit(DivideAssignmentOperator node);
  58. void Visit(ModuloAssignmentOperator node);
  59. void Visit(MultiplyAssignmentOperator node);
  60. void Visit(SubtractAssignmentOperator node);
  61. void Visit(ValueAssignmentOperator node);
  62.  
  63. // Basic types
  64. void Visit(Bool node);
  65. void Visit(Number node);
  66. void Visit(StringType node);
  67.  
  68. // Comparison
  69. void Visit(Equals node);
  70. void Visit(Greater node);
  71. void Visit(GreaterOrEqual node);
  72. void Visit(Is node);
  73. void Visit(Less node);
  74. void Visit(LessOrEqual node);
  75. void Visit(NotEquals node);
  76.  
  77. // Conditional
  78. void Visit(ConditionalAnd node);
  79. void Visit(ConditionalOr node);
  80.  
  81. // Logical
  82. void Visit(LogicalAnd node);
  83. void Visit(LogicalOr node);
  84. void Visit(LogicalXor node);
  85.  
  86. // Math
  87. void Visit(Add node);
  88. void Visit(Concat node);
  89. void Visit(Divide node);
  90. void Visit(Modulo node);
  91. void Visit(Multiply node);
  92. void Visit(Power node);
  93. void Visit(Subtract node);
  94.  
  95. // Unary
  96. void Visit(PostDecrement node);
  97. void Visit(PostIncrement node);
  98. void Visit(PreDecrement node);
  99. void Visit(PreIncrement node);
  100. void Visit(Negation node);
  101. void Visit(Negative node);
  102. void Visit(Not node);
  103.  
  104. void Visit(AnonymousFunction node);
  105. void Visit(AnonymousLambdaFunction node);
  106. void Visit(FunctionCall node);
  107. void Visit(GroupedEquation node);
  108. void Visit(MethodCall node);
  109. void Visit(Null node);
  110. void Visit(NullPropagation node);
  111. void Visit(ShiftLeft node);
  112. void Visit(ShiftRight node);
  113. void Visit(Table node);
  114. void Visit(TableDotIndex node);
  115. void Visit(TableIndex node);
  116. void Visit(Ternary node);
  117. void Visit(This node);
  118. void Visit(Vararg node);
  119. void Visit(Variable node);
  120.  
  121. #endregion
  122. }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement