productions | commentaires |
---|---|
prog --> defs procs | suite de définitions suivie par suite de processus |
productions | commentaires |
---|---|
defs --> { defs "||" } | syntaxe un peu "dirty" (pourquoi?) mais fonctionelle |
productions | commentaires |
---|---|
procs --> proc { "||" proc } | au moins un processus |
proc --> "proc" id block |
productions | commentaires |
---|---|
Stm --> Assign | Loop | While | Cond | Block |
[enter critical region]; [exit critical region]
productions | commentaires |
---|---|
Action --> "[" text "]" | voir analyseur lexical |
productions | commentaires |
---|---|
Assign --> id ":=" Exp |
productions | commentaires |
---|---|
Cond --> "if" bool "then" Stm [ "else" Stm ] | longest match |
productions | commentaires |
---|---|
Loop --> "loop" Block
While --> "while" Bool Block |
productions | commentaires |
---|---|
Block --> "{" Stms "}" |
productions | commentaires |
---|---|
Bool --> BTerm { "&" BTerm }
BTerm --> [ "!" ] BFactor BFactor --> Exp ( "=" | "<" ) Exp | "(" Bool ")" |
précédences! |
productions | commentaires |
---|---|
Exp --> Term { ( "+" | "-" ) Term }
Term --> Factor { ( "*" | "/" ) Factor } Factor --> num | id | "(" Exp ")" |
précédences! |
productions | commentaires |
---|---|
voir analyse lexicale |
productions | commentaires |
---|---|
voir analyse lexicale |