Fix pl0 for EBNF syntax changes

db4
Chris Double 2008-03-20 14:06:21 +13:00
parent 795ef0ae3b
commit ec4f964e4f
1 changed files with 8 additions and 8 deletions

View File

@ -16,16 +16,16 @@ MEMO: number ( -- parser )
<EBNF
program = block "."
block = [ "CONST" ident "=" number { "," ident "=" number } ";" ]
[ "VAR" ident { "," ident } ";" ]
{ "PROCEDURE" ident ";" [ block ";" ] } statement
statement = [ ident ":=" expression | "CALL" ident |
"BEGIN" statement {";" statement } "END" |
block = ( "CONST" ident "=" number ( "," ident "=" number )* ";" )?
( "VAR" ident ( "," ident )* ";" )?
( "PROCEDURE" ident ";" ( block ";" )? )* statement
statement = ( ident ":=" expression | "CALL" ident |
"BEGIN" statement (";" statement )* "END" |
"IF" condition "THEN" statement |
"WHILE" condition "DO" statement ]
"WHILE" condition "DO" statement )?
condition = "ODD" expression |
expression ("=" | "#" | "<=" | "<" | ">=" | ">") expression
expression = ["+" | "-"] term {("+" | "-") term }
term = factor {("*" | "/") factor }
expression = ("+" | "-")? term (("+" | "-") term )*
term = factor (("*" | "/") factor )*
factor = ident | number | "(" expression ")"
EBNF>