module examples::fun::Syntax
rascal-0.40.16
typepal-0.14.8
Usage
import examples::fun::Syntax;
Source code
http://github.com/usethesource/typepal/src/examples/fun/Syntax.rsc
Dependencies
extend examples::CommonLex;
syntax Fun
start syntax Fun
= Expression
;
syntax Type
syntax Type
= "bool"
| "int"
| "str"
| left Type from "-\>" Type to
;
syntax Expression
syntax Expression
= Id name
| Integer intcon
| Boolean boolcon
| String strcon
| bracket "(" Expression e ")"
> left Expression lhs "+" Expression rhs
> left Expression lhs "&&" Expression rhs
| "fun" Id name ":" Type tp "{" Expression exp "}"
> left Expression exp1 "(" Expression exp2 ")"
| "let" Id name ":" Type tp "=" Expression exp1 "in" Expression exp2 "end"
| "if" Expression cond "then" Expression thenPart "else" Expression elsePart "fi"
;
syntax Reserved
keyword Reserved
= "if" | "then" | "else" | "fi" |
"let" | "in" | "fun" | "end" |
"int" | "bool"
;