summaryrefslogtreecommitdiff
path: root/src/GF/Canon/GFCC/GFCC.cf
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-10-07 14:08:58 +0000
committeraarne <aarne@cs.chalmers.se>2006-10-07 14:08:58 +0000
commitf9cc79eba6f12a5306987478ec99c4d1dae72863 (patch)
tree2efab0251feeaf7afa6029e3636df1747af30588 /src/GF/Canon/GFCC/GFCC.cf
parent2f284deb1ce3071b86efcabb5e57028cc5d2c52f (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.cf9
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 "" ;