diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:43:48 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:43:48 +0000 |
| commit | b96b36f43de3e2f8b58d5f539daa6f6d47f25870 (patch) | |
| tree | 0992334be13cec6538a1dea22fbbf26ad6bdf224 /src/GF/Canon/GFC.cf | |
| parent | fe367412e0aeb4ad5c02de68e6eca382e0f96984 (diff) | |
removed src for 2.9
Diffstat (limited to 'src/GF/Canon/GFC.cf')
| -rw-r--r-- | src/GF/Canon/GFC.cf | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/src/GF/Canon/GFC.cf b/src/GF/Canon/GFC.cf deleted file mode 100644 index d9385a49f..000000000 --- a/src/GF/Canon/GFC.cf +++ /dev/null @@ -1,170 +0,0 @@ --- top-level grammar - --- Canonical GF. AR 27/4/2003 - -entrypoints Canon, Line ; - --- old approach: read in a whole grammar - -MGr. Canon ::= "grammar" [Ident] "of" Ident ";" [Module] ; -Gr. Canon ::= [Module] ; - --- new approach: read line by line - -LMulti. Line ::= "grammar" [Ident] "of" Ident ";" ; -LHeader. Line ::= ModType "=" Extend Open "{" ; -LFlag. Line ::= Flag ";" ; -LDef. Line ::= Def ";" ; -LEnd. Line ::= "}" ; - -Mod. Module ::= ModType "=" Extend Open "{" [Flag] [Def] "}" ; - -MTAbs. ModType ::= "abstract" Ident ; -MTCnc. ModType ::= "concrete" Ident "of" Ident ; -MTRes. ModType ::= "resource" Ident ; -MTTrans. ModType ::= "transfer" Ident ":" Ident "->" Ident ; - -separator Module "" ; - -Ext. Extend ::= [Ident] "**" ; -NoExt. Extend ::= ; - -Opens. Open ::= "open" [Ident] "in" ; -NoOpens. Open ::= ; - - --- judgements - -Flg. Flag ::= "flags" Ident "=" Ident ; --- to have the same res word as in GF - -AbsDCat. Def ::= "cat" Ident "[" [Decl] "]" "=" [CIdent] ; -AbsDFun. Def ::= "fun" Ident ":" Exp "=" Exp ; -AbsDTrans. Def ::= "transfer" Ident "=" Exp ; - -ResDPar. Def ::= "param" Ident "=" [ParDef] ; -ResDOper. Def ::= "oper" Ident ":" CType "=" Term ; - -CncDCat. Def ::= "lincat" Ident "=" CType "=" Term ";" Term ; -CncDFun. Def ::= "lin" Ident ":" CIdent "=" "\\" [ArgVar] "->" Term ";" Term ; - -AnyDInd. Def ::= Ident Status "in" Ident ; - -ParD. ParDef ::= Ident [CType] ; - --- the canonicity of an indirected constant - -Canon. Status ::= "data" ; -NonCan. Status ::= ; - --- names originating from resource modules: prefixed by the module name - -CIQ. CIdent ::= Ident "." Ident ; - --- types and terms in abstract syntax; no longer type-annotated - -EApp. Exp1 ::= Exp1 Exp2 ; -EProd. Exp ::= "(" Ident ":" Exp ")" "->" Exp ; -EAbs. Exp ::= "\\" Ident "->" Exp ; -EAtom. Exp2 ::= Atom ; -EData. Exp2 ::= "data" ; - -EEq. Exp ::= "{" [Equation] "}" ; -- list of pattern eqs; primitive notion: [] - -coercions Exp 2 ; - -SType. Sort ::= "Type" ; - -Equ. Equation ::= [APatt] "->" Exp ; - -APC. APatt ::= "(" CIdent [APatt] ")" ; -APV. APatt ::= Ident ; -APS. APatt ::= String ; -API. APatt ::= Integer ; -APF. APatt ::= Double ; -APW. APatt ::= "_" ; - -separator Decl ";" ; -terminator APatt "" ; -terminator Equation ";" ; - -AC. Atom ::= CIdent ; -AD. Atom ::= "<" CIdent ">" ; -AV. Atom ::= "$" Ident ; -AM. Atom ::= "?" Integer ; -AS. Atom ::= String ; -AI. Atom ::= Integer ; -AT. Atom ::= Sort ; - -Decl. Decl ::= Ident ":" Exp ; - - --- types, terms, and patterns in concrete syntax - -RecType. CType ::= "{" [Labelling] "}" ; -Table. CType ::= "(" CType "=>" CType ")" ; -Cn. CType ::= CIdent ; -TStr. CType ::= "Str" ; -TInts. CType ::= "Ints" Integer ; - -Lbg. Labelling ::= Label ":" CType ; - -Arg. Term2 ::= ArgVar ; -I. Term2 ::= CIdent ; -- from resources -Par. Term2 ::= "<" CIdent [Term2] ">" ; -LI. Term2 ::= "$" Ident ; -- from pattern variables - -R. Term2 ::= "{" [Assign] "}" ; -P. Term1 ::= Term2 "." Label ; -T. Term1 ::= "table" CType "{" [Case] "}" ; -V. Term1 ::= "table" CType "[" [Term2] "]" ; -S. Term1 ::= Term1 "!" Term2 ; -C. Term ::= Term "++" Term1 ; -FV. Term1 ::= "variants" "{" [Term2] "}" ; --- no separator! - -EInt. Term2 ::= Integer ; -EFloat. Term2 ::= Double ; -K. Term2 ::= Tokn ; -E. Term2 ::= "[" "]" ; - -KS. Tokn ::= String ; -KP. Tokn ::= "[" "pre" [String] "{" [Variant] "}" "]" ; -internal KM. Tokn ::= String ; -- mark-up - -Ass. Assign ::= Label "=" Term ; -Cas. Case ::= [Patt] "=>" Term ; -Var. Variant ::= [String] "/" [String] ; - -coercions Term 2 ; - -L. Label ::= Ident ; -LV. Label ::= "$" Integer ; -A. ArgVar ::= Ident "@" Integer ; -- no bindings -AB. ArgVar ::= Ident "+" Integer "@" Integer ; -- with a number of bindings - -PC. Patt ::= "(" CIdent [Patt] ")" ; -PV. Patt ::= Ident ; -PW. Patt ::= "_" ; -PR. Patt ::= "{" [PattAssign] "}" ; -PI. Patt ::= Integer ; -PF. Patt ::= Double ; - -PAss. PattAssign ::= Label "=" Patt ; - ---- here we use the new pragmas to generate list rules - -terminator Flag ";" ; -terminator Def ";" ; -separator ParDef "|" ; -separator CType "" ; -separator CIdent "" ; -separator Assign ";" ; -separator ArgVar "," ; -separator Labelling ";" ; -separator Case ";" ; -separator Term2 "" ; -separator String "" ; -separator Variant ";" ; -separator PattAssign ";" ; -separator Patt "" ; -separator Ident "," ; - |
