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