Advertisement
Guest User

Func

a guest
Feb 21st, 2011
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. tree grammar func;
  2.  
  3. options {
  4. language = Java;
  5. tokenVocab = hhl;
  6. ASTLabelType = CommonTree;
  7. }
  8.  
  9. @header {
  10. package haven.hhl;
  11.  
  12. import java.util.HashMap;
  13. import java.util.Vector;
  14. import java.util.Map;
  15. import java.io.*;
  16. }
  17.  
  18. program :
  19. ^(INCLUDELIST include*) ^(PROGRAM ^(VARIABLES .*) ^(FUNCTIONS functionDecl*) .) EOF
  20. ;
  21.  
  22. include
  23. : EMPTY
  24. | ^(INCLUDE include_name = IDENT) {hhl_main.IncludeScript($include_name.text);}
  25. ;
  26.  
  27. functionDecl
  28. @init{
  29. Vector params=new Vector();
  30. }
  31. @after{
  32. CommonTree blockNode = (CommonTree)$functionDecl.start.getChild(3);
  33. hhl_main.symbols.declare_function($name.text,$t.text,params,blockNode);
  34. }
  35. : ^(FUNCTION t=TYPE name=IDENT ^(PARAMATERS (par=paramDecl {if ($par.p != null) params.add($par.p);})*) .)
  36. ;
  37.  
  38. paramDecl returns[FunctionParam p]
  39. : EMPTY {p = null;}
  40. | ^(VARPARAM TYPE IDENT) {$p=new FunctionParam($IDENT.text,$TYPE.text, "scalar");}
  41. | ^(ARRAYPARAM TYPE IDENT) {$p=new FunctionParam($IDENT.text,$TYPE.text,"array");}
  42. ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement