summaryrefslogtreecommitdiff
path: root/src/GF/CFGM/CFG.cf
diff options
context:
space:
mode:
authorbringert <unknown>2004-09-29 08:27:28 +0000
committerbringert <unknown>2004-09-29 08:27:28 +0000
commitdf2c63c5596db36f0c1899cced6b7ee2e946741e (patch)
treeeece388341c371e9b1c552663493e2fb05dacd6f /src/GF/CFGM/CFG.cf
parent01f872bf5db46863565c44c7f40b337217d35e8e (diff)
Updated to latest CFG specification from gfc2java
Diffstat (limited to 'src/GF/CFGM/CFG.cf')
-rw-r--r--src/GF/CFGM/CFG.cf23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/GF/CFGM/CFG.cf b/src/GF/CFGM/CFG.cf
index 51117b8ba..f7b15aea1 100644
--- a/src/GF/CFGM/CFG.cf
+++ b/src/GF/CFGM/CFG.cf
@@ -20,16 +20,29 @@ separator Integer ",";
CatS. Symbol ::= Category;
TermS. Symbol ::= String;
-separator Symbol "";
+-- separator Symbol "";
+[]. [Symbol] ::= "." ;
+(:[]). [Symbol] ::= Symbol ;
+(:). [Symbol] ::= Symbol [Symbol] ;
+
Name. Name ::= [IdentParam] Category;
terminator IdentParam "/";
-Category. Category ::= IdentParam "." Ident [Param] ;
+Category. Category ::= IdentParam "." Ident [Proj] ;
+
+IdentParam. IdentParam ::= Ident "{" [Field] "}" ;
-IdentParam. IdentParam ::= Ident "{" [Param] "}" ;
+Field. Field ::= "." KeyValue ;
+terminator Field ";" ;
-Param. Param ::= "!" Ident ;
-separator Param "";
+Proj. Proj ::= "!" Param ;
+separator Proj "" ;
+KeyValue. KeyValue ::= Ident "=" Param ;
+separator KeyValue ";" ;
+ParamSimple. Param ::= Ident ;
+ParamPatt. Param ::= Ident "(" [Param] ")" ;
+ParamRec. Param ::= "{" [KeyValue] "}" ;
+separator Param "," ;