Advertisement
Guest User

Untitled

a guest
Sep 8th, 2017
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
BNF 1.27 KB | None | 0 0
  1. <program> ::= <block> "."
  2.  
  3. <block> ::= ["const" <identifier> "=" <number>  (";" | ({"," <identifier> "=" <number>} ";") )]
  4.         ["var" <identifier> (";" | ({"," <identifier>} ";") )]
  5.         [{  ["proced" <identifier> ";" <block> ";"] ["function" <identifier> "of" "type" <type> ";" <block> ";"]  }]
  6.         <statement>
  7.  
  8. <statement list> ::= <statement> {";" <statement>}
  9.  
  10. <statement> ::= [ (<identifier> "=" <expression>) |
  11.           ("call" <identifier>) |
  12.           ("begin" <statement list> "end") |
  13.           ("if" <condition> "then" <statement>) |
  14.           ("for" <identifier> ":=" <expression> "to" <expression> "do" "begin" <statement list> "end") |
  15.           ("while" <conditional> "do" <statement>) ]
  16.  
  17. <expression> ::= ["+" | "-"] <term> {("+" | "-") <term>}
  18.  
  19. <term> ::= <factor> {("*" | "/") <factor>}
  20.  
  21. <factor> ::= <identifier> | <number> | ("(" <expression> ")")
  22.  
  23. <type> ::= "integer" | "real" | "char"
  24.  
  25. <conditional> ::= (("odd") | (<expression> ("$"|"%"|"="|"<"|">"|"#"))) <expression>
  26.  
  27. <uppercase letter> ::= (A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z)
  28.  
  29. <lowercase letter> ::= (a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)
  30.  
  31. <identifier> ::= <lowercase letter> | <uppercase letter>  {<lowercase letter> | <uppercase letter> | <number>}
  32.  
  33. <number> ::= (0|1|2|3|4|5|6|7|8|9)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement