diff options
| author | aarne <aarne@cs.chalmers.se> | 2006-10-07 14:08:58 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2006-10-07 14:08:58 +0000 |
| commit | f9cc79eba6f12a5306987478ec99c4d1dae72863 (patch) | |
| tree | 2efab0251feeaf7afa6029e3636df1747af30588 /src/GF/Canon/GFCC/GFCC.cf | |
| parent | 2f284deb1ce3071b86efcabb5e57028cc5d2c52f (diff) | |
slight change in gfcc syntax and evaluation
Diffstat (limited to 'src/GF/Canon/GFCC/GFCC.cf')
| -rw-r--r-- | src/GF/Canon/GFCC/GFCC.cf | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/GF/Canon/GFCC/GFCC.cf b/src/GF/Canon/GFCC/GFCC.cf index 401979697..b57c4f636 100644 --- a/src/GF/Canon/GFCC/GFCC.cf +++ b/src/GF/Canon/GFCC/GFCC.cf @@ -1,6 +1,6 @@ -Grm. Grammar ::= Header ";" Abstract ";" [Concrete] ";" ; +Grm. Grammar ::= Header ";" Abstract ";" [Concrete] ; Hdr. Header ::= "grammar" CId "(" [CId] ")" ; -Abs. Abstract ::= "abstract" "{" [AbsDef] "}" ";" ; +Abs. Abstract ::= "abstract" "{" [AbsDef] "}" ; Cnc. Concrete ::= "concrete" CId "{" [CncDef] "}" ; Fun. AbsDef ::= CId ":" Type "=" Exp ; @@ -19,7 +19,7 @@ trA. Exp ::= Atom ; define trA a = Tr a [] ; R. Term ::= "[" [Term] "]" ; -- record/table -P. Term ::= Term "[" Term "]" ; -- projection/selection +P. Term ::= "(" Term "!" Term ")" ; -- projection/selection S. Term ::= "(" [Term] ")" ; -- sequence with ++ K. Term ::= Tokn ; -- token V. Term ::= "$" Integer ; -- argument @@ -28,6 +28,7 @@ F. Term ::= CId ; -- global constant FV. Term ::= "[|" [Term] "|]" ; -- free variation W. Term ::= "(" String "+" Term ")" ; -- prefix + suffix table RP. Term ::= "(" Term "@" Term ")"; -- record parameter alias +TM. Term ::= "?" ; -- lin of metavariable KS. Tokn ::= String ; KP. Tokn ::= "[" "pre" [String] "[" [Variant] "]" "]" ; @@ -37,7 +38,7 @@ Var. Variant ::= [String] "/" [String] ; terminator Concrete ";" ; terminator AbsDef ";" ; terminator CncDef ";" ; -terminator CId "" ; +separator CId "," ; separator Term "," ; terminator Exp "" ; terminator String "" ; |
