summaryrefslogtreecommitdiff
path: root/src/GF/GFCC/doc/old-GFCC.cf
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-10-05 13:38:10 +0000
committeraarne <aarne@cs.chalmers.se>2007-10-05 13:38:10 +0000
commit2905d5552c1530185609fe892e0e9e2c4994ca1d (patch)
tree7b73558c7a1ea5ba21a597fe1a7a8e2f1c0929d6 /src/GF/GFCC/doc/old-GFCC.cf
parent1b4f7c9741b87f7085f0a8b70034e5ce7cfe668a (diff)
removed Canon/GFCC
Diffstat (limited to 'src/GF/GFCC/doc/old-GFCC.cf')
-rw-r--r--src/GF/GFCC/doc/old-GFCC.cf50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/GF/GFCC/doc/old-GFCC.cf b/src/GF/GFCC/doc/old-GFCC.cf
new file mode 100644
index 000000000..65657a259
--- /dev/null
+++ b/src/GF/GFCC/doc/old-GFCC.cf
@@ -0,0 +1,50 @@
+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 [] ;
+
+R. Term ::= "[" [Term] "]" ; -- record/table
+P. Term ::= "(" Term "!" Term ")" ; -- projection/selection
+S. Term ::= "(" [Term] ")" ; -- sequence with ++
+K. Term ::= Tokn ; -- token
+V. Term ::= "$" Integer ; -- argument
+C. Term ::= Integer ; -- parameter value/label
+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
+
+L. Term ::= "(" CId "->" Term ")" ; -- lambda abstracted table
+BV. Term ::= "#" CId ; -- lambda-bound variable
+
+KS. Tokn ::= String ;
+KP. Tokn ::= "[" "pre" [String] "[" [Variant] "]" "]" ;
+Var. Variant ::= [String] "/" [String] ;
+
+
+terminator Concrete ";" ;
+terminator AbsDef ";" ;
+terminator CncDef ";" ;
+separator CId "," ;
+separator Term "," ;
+terminator Exp "" ;
+terminator String "" ;
+separator Variant "," ;
+
+token CId (('_' | letter) (letter | digit | '\'' | '_')*) ;