summaryrefslogtreecommitdiff
path: root/src/GF/Canon/GFCC/GFCC.cf
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-09-29 10:55:36 +0000
committeraarne <aarne@cs.chalmers.se>2006-09-29 10:55:36 +0000
commitb39ecf4c324b674918813099711aaf437d7db1df (patch)
tree052d0b8ccb4d39dc95ffef7c184323b6f1ff2340 /src/GF/Canon/GFCC/GFCC.cf
parentf705205b529e7761f2ba1d0fd4ba5dcf566dbf0d (diff)
new constructs in gfcc, removed lambda
Diffstat (limited to 'src/GF/Canon/GFCC/GFCC.cf')
-rw-r--r--src/GF/Canon/GFCC/GFCC.cf10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/GF/Canon/GFCC/GFCC.cf b/src/GF/Canon/GFCC/GFCC.cf
index a58544953..401979697 100644
--- a/src/GF/Canon/GFCC/GFCC.cf
+++ b/src/GF/Canon/GFCC/GFCC.cf
@@ -1,19 +1,20 @@
Grm. Grammar ::= Header ";" Abstract ";" [Concrete] ";" ;
-
Hdr. Header ::= "grammar" CId "(" [CId] ")" ;
-
Abs. Abstract ::= "abstract" "{" [AbsDef] "}" ";" ;
-
Cnc. Concrete ::= "concrete" CId "{" [CncDef] "}" ;
Fun. AbsDef ::= CId ":" Type "=" Exp ;
+AFl. AbsDef ::= "%" CId "=" String ; -- flag
Lin. CncDef ::= CId "=" Term ;
+CFl. CncDef ::= "%" CId "=" String ; -- flag
Typ. Type ::= [CId] "->" CId ;
Tr. Exp ::= "(" Atom [Exp] ")" ;
AC. Atom ::= CId ;
AS. Atom ::= String ;
AI. Atom ::= Integer ;
+AF. Atom ::= Double ;
+AM. Atom ::= "?" ;
trA. Exp ::= Atom ;
define trA a = Tr a [] ;
@@ -24,10 +25,9 @@ K. Term ::= Tokn ; -- token
V. Term ::= "$" Integer ; -- argument
C. Term ::= Integer ; -- parameter value/label
F. Term ::= CId ; -- global constant
-L. Term ::= "$" CId ; -- local (bound) variable
-A. Term ::= "(" CId "->" Term ")" ; -- lambda abstraction (compressed table)
FV. Term ::= "[|" [Term] "|]" ; -- free variation
W. Term ::= "(" String "+" Term ")" ; -- prefix + suffix table
+RP. Term ::= "(" Term "@" Term ")"; -- record parameter alias
KS. Tokn ::= String ;
KP. Tokn ::= "[" "pre" [String] "[" [Variant] "]" "]" ;