module LESSON-09-A
imports BOOL
syntax Exp ::= "(" Exp ")" [bracket]
| Bool
> "!" Exp
> left:
Exp "&&" Exp
| Exp "^" Exp
| Exp "||" Exp
syntax Exp ::= id(Exp) [function]
rule id(E) => E
endmodule
module LESSON-09-B
imports BOOL
syntax Stmt ::= "{" Stmt "}" | "{" "}"
> right:
Stmt Stmt
| "if" "(" Bool ")" Stmt
| "if" "(" Bool ")" Stmt "else" Stmt [avoid]
endmodule
module LESSON-09-C
imports BOOL
syntax Stmt ::= "{" Stmt "}" [format(%1%i%n%2%d%n%3)] | "{" "}" [format(%1%2)]
> right:
Stmt Stmt [format(%1%n%2)]
| "if" "(" Bool ")" Stmt [format(%1 %2%3%4 %5)]
| "if" "(" Bool ")" Stmt "else" Stmt [avoid, format(%1 %2%3%4 %5 %6 %7)]
endmodule
module LESSON-09-D
imports BOOL
syntax Exp ::= "(" Exp ")" [bracket]
| Bool
> "!" Exp [color(yellow)]
> left:
Exp "&&" Exp [color(red)]
| Exp "^" Exp [color(blue)]
| Exp "||" Exp [color(green)]
syntax Exp ::= id(Exp) [function]
rule id(E) => E
endmodule