Advertisement
KillianMills

PrintVisitor.java

Dec 13th, 2015
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.46 KB | None | 0 0
  1. // Name:PrintVisitor.java
  2. // Author: David Sinclair      Date: 29 Aug 2012
  3. //
  4. // Visitor for "pretty printing" an abstract syntax tree in the ExprLang language
  5. //
  6.  
  7. public class PrintVisitor implements ParserVisitor
  8. {
  9.     public Object visit(SimpleNode node, Object data)
  10.     {
  11.         throw new RuntimeException("Visit SimpleNode");
  12.     }
  13.  
  14.     public Object visit(ASTProgram node, Object data)
  15.     {
  16.         node.jjtGetChild(0).jjtAccept(this, data);
  17.         System.out.println(";");
  18.         return(data);
  19.     }
  20.  
  21.     public Object visit(ASTVarDecl node, Object data)
  22.     {
  23.         System.out.print(node.value + " ");
  24.         System.out.println("TEST");
  25.         node.jjtGetChild(0).jjtAccept(this, data);
  26.         return data;
  27.     }
  28.  
  29.     public Object visit(ASTConstDecl node, Object data)
  30.     {
  31.         System.out.print(node.value + " ");
  32.         node.jjtGetChild(0).jjtAccept(this, data);
  33.         return data;
  34.     }
  35.  
  36.     public Object visit(ASTEqual node, Object data)
  37.     {
  38.         System.out.print(node.value + " ");
  39.         node.jjtGetChild(0).jjtAccept(this, data);
  40.         return data;
  41.     }
  42.  
  43.     public Object visit(ASTFunction node, Object data)
  44.     {
  45.         System.out.print(node.value + " ");
  46.         node.jjtGetChild(0).jjtAccept(this, data);
  47.         return data;
  48.     }
  49.  
  50.     public Object visit(ASTParamList node, Object data)
  51.     {
  52.         System.out.print(node.value + " ");
  53.         node.jjtGetChild(0).jjtAccept(this, data);
  54.         return data;
  55.     }
  56.     public Object visit(ASTType node, Object data)
  57.     {
  58.         System.out.print(node.value + " ");
  59.         node.jjtGetChild(0).jjtAccept(this, data);
  60.         return data;
  61.     }
  62.  
  63.     public Object visit(ASTMainProg node, Object data)
  64.     {
  65.         System.out.print(node.value + " ");
  66.         node.jjtGetChild(0).jjtAccept(this, data);
  67.         return data;
  68.     }
  69.  
  70.     public Object visit(ASTAssign node, Object data)
  71.     {
  72.         System.out.print(node.value + " ");
  73.         node.jjtGetChild(0).jjtAccept(this, data);
  74.         return data;
  75.     }
  76.  
  77.     public Object visit(ASTMathSign node, Object data)
  78.     {
  79.         System.out.print(node.value + " ");
  80.         node.jjtGetChild(0).jjtAccept(this, data);
  81.         return data;
  82.     }
  83.  
  84.     public Object visit(ASTCondition node, Object data)
  85.     {
  86.         System.out.print(node.value + " ");
  87.         node.jjtGetChild(0).jjtAccept(this, data);
  88.         return data;
  89.     }
  90.  
  91.     public Object visit(ASTSigns node, Object data)
  92.     {
  93.         System.out.print(node.value + " ");
  94.         node.jjtGetChild(0).jjtAccept(this, data);
  95.         return data;
  96.     }
  97.  
  98.     public Object visit(ASTIdentList node, Object data)
  99.     {
  100.         System.out.print(node.value + " ");
  101.         node.jjtGetChild(0).jjtAccept(this, data);
  102.         return data;
  103.     }
  104.  
  105.     public Object visit(ASTArgList node, Object data)
  106.     {
  107.         System.out.print(node.value + " ");
  108.         node.jjtGetChild(0).jjtAccept(this, data);
  109.         return data;
  110.     }
  111.  
  112.     public Object visit(ASTNum node, Object data)
  113.     {
  114.         System.out.print(node.value);
  115.         return data;
  116.     }
  117.  
  118.     public Object visit(ASTBool node, Object data)
  119.     {
  120.         node.jjtGetChild(0).jjtAccept(this, data);
  121.         System.out.print(" " + node.value + " ");
  122.         node.jjtGetChild(1).jjtAccept(this, data);
  123.         return data;
  124.     }
  125.  
  126.     public Object visit(ASTId node, Object data)
  127.     {
  128.         System.out.print(node.value);
  129.         return data;
  130.     }
  131.  
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement