diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-04-20 15:36:33 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-04-20 15:36:33 +0000 |
| commit | fcbc004aa664c862d9de944eeb4da7ded68bf0c0 (patch) | |
| tree | 9ba396d972ad3268d0ea42b689a334b637c074ec /devel/compiler/Src.cf | |
| parent | fc2c3cf057c15ae94382a81fa2c86a8963caf9ea (diff) | |
record labels in compiler experiment
Diffstat (limited to 'devel/compiler/Src.cf')
| -rw-r--r-- | devel/compiler/Src.cf | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/devel/compiler/Src.cf b/devel/compiler/Src.cf index d3b29ee45..5a49b2341 100644 --- a/devel/compiler/Src.cf +++ b/devel/compiler/Src.cf @@ -20,10 +20,12 @@ coercions Type 1 ; terminator Type "" ; -FTyp. Typing ::= Ident ":" Type ; +FTyp. Typing ::= Label ":" Type ; separator Typing ";" ; +Lab. Label ::= Ident "#" Integer ; + EVar. Exp2 ::= "$" Ident ; EOpr. Exp2 ::= "&" Ident ; ECon. Exp2 ::= Ident ; @@ -33,7 +35,7 @@ ECst. Exp2 ::= "(" Ident "@" [Exp] ")" ; ERec. Exp2 ::= "{" [Assign] "}" ; EApp. Exp1 ::= Exp1 Exp2 ; ESel. Exp1 ::= Exp1 "!" Exp2 ; -EPro. Exp1 ::= Exp1 "." Exp2 ; +EPro. Exp1 ::= Exp1 "." Label ; ETab. Exp1 ::= "table" Type "{" [Case] "}" ; ECat. Exp ::= Exp "++" Exp1 ; EAbs. Exp ::= "\\" Ident "->" Exp ; @@ -42,7 +44,7 @@ coercions Exp 2 ; separator Exp "," ; -FExp. Assign ::= Ident "=" Exp ; +FExp. Assign ::= Label "=" Exp ; separator Assign ";" ; @@ -57,7 +59,7 @@ PCon. Patt ::= "(" Ident [Patt] ")" ; terminator Patt "" ; -FPatt. AssPatt ::= Ident "=" Patt ; +FPatt. AssPatt ::= Label "=" Patt ; separator AssPatt ";" ; |
