Advertisement
Guest User

Untitled

a guest
Jun 27th, 2014
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. NAME : [_a-zA-Z][_a-zA-Z0-9]*
  2. NUMBER : [0-9]+
  3. FLOAT : (([0-9]*\.[0-9]+)|([0-9]+\.))
  4. STRING : ("|')([^\r\n])*?[^\\]\1
  5. BOOLEAN : (0|1)
  6.  
  7. ======================================
  8.  
  9. start :: statementList
  10. | function
  11.  
  12. statementList :: statement ";" statementList
  13. | statement ";"
  14. | Null
  15.  
  16. statement :: "import" importList
  17. | expression
  18. | modifier varList
  19. | NAME "(" argList ")"
  20. | "prototype" NAME
  21.  
  22. importList :: NAME
  23. | NAME "." NAME
  24. | NAME "as" NAME
  25. | NAME "." NAME "as" NAME
  26.  
  27. expression :: term
  28. | expression "+" term
  29. | expression "-" term
  30.  
  31. term :: conditional
  32. | term "*" conditional
  33. | term "/" conditional
  34.  
  35. conditional :: primary
  36. | conditional "==" primary
  37. | conditional "!=" primary
  38. | conditional "<" primary
  39. | conditional ">" primary
  40. | conditional "<=" primary
  41. | conditional "and" primary
  42. | conditional "or" primary
  43.  
  44. primary :: datatype
  45. | NAME
  46. | NAME "=" expression
  47. | NAME "=" "None"
  48. | "(" expression ")"
  49. | "-" primary
  50. | "+" primary
  51.  
  52. datatype :: NUMBER
  53. | FLOAT
  54. | STRING
  55. | BOOLEAN
  56.  
  57. modifier :: "var"
  58. | "static"
  59. | "const"
  60. | "extern"
  61.  
  62. varList :: variable "," varList
  63. | variable
  64.  
  65. variable :: NAME
  66. | NAME "=" expression
  67. | NAME "=" "{" valueList "}"
  68. | NAME "=" "(" valueList ")"
  69. | NAME "=" "{" key-map "}"
  70.  
  71. valueList :: value "," valueList
  72. | value
  73. | Null
  74.  
  75. value :: datatype
  76. | NAME
  77.  
  78. key-map :: key ":" value "," key-map
  79. | key ":" value
  80. | Null
  81.  
  82. key :: datatype
  83. | NAME
  84.  
  85. argList :: "var" variable "," argList
  86. | "var" variable
  87.  
  88. function :: "function" NAME "(" modifier varList ")" "{" block "}"
  89.  
  90. block :: block block
  91. | statementList
  92. | loopBlock
  93. | flowControl
  94.  
  95. loopBlock :: whileBlock
  96. | forBlock
  97. | foreachBlock
  98.  
  99. whileBlock :: "do" "{" block "}" "while" "(" expression ")" ";"
  100. | "while" "(" expression ")" "{" block "}"
  101.  
  102. forBlock :: "for" "(" expressionList ";" expression ";" expression ")" "{" block "}"
  103.  
  104. foreachBlock :: "foreach" "(" NAME "as" NAME ")" "{" block "}"
  105.  
  106. flowControl :: "if" "(" expression ")" "{" block "}" elif
  107.  
  108. elif :: "elif" "(" expression ")" "{" block "}" else
  109. | Null
  110.  
  111. else :: "else" "{" block "}"
  112. | Null
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement