| 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 |