From 61a9bdbe34acad5c2244b20930507a1f9bc33477 Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 14 Dec 2007 09:25:18 +0000 Subject: [PATCH] removed dep. on GFCCRaw --- src/GF/Command/PPrTree.hs | 2 +- src/GF/Compile/ShellState.hs | 2 +- src/GF/Conversion/SimpleToFCFG.hs | 2 +- src/GF/Conversion/Types.hs | 2 +- src/GF/Devel/Compile/GFtoGFCC.hs | 2 +- src/GF/Devel/GFCCtoHaskell.hs | 2 +- src/GF/Devel/GFCCtoJS.hs | 2 +- src/GF/Devel/GrammarToGFCC.hs | 2 +- src/GF/Formalism/FCFG.hs | 2 +- src/GF/GFCC/API.hs | 2 +- src/GF/GFCC/CId.hs | 14 +++++ src/GF/GFCC/CheckGFCC.hs | 2 +- src/GF/GFCC/DataGFCC.hs | 2 +- src/GF/GFCC/Generate.hs | 2 +- src/GF/GFCC/Linearize.hs | 2 +- src/GF/GFCC/Macros.hs | 2 +- src/GF/GFCC/OptimizeGFCC.hs | 2 +- src/GF/GFCC/Raw/ConvertGFCC.hs | 10 +-- src/GF/GFCC/Raw/GFCCRaw.cf | 98 ------------------------------ src/GF/GFCC/ShowLinearize.hs | 2 +- src/GF/Parsing/FCFG.hs | 2 +- src/GF/Parsing/FCFG/PInfo.hs | 2 +- src/GF/Parsing/GFC.hs | 2 +- src/GF/Speech/GrammarToVoiceXML.hs | 2 +- src/GF/Speech/TransformCFG.hs | 2 +- 25 files changed, 41 insertions(+), 125 deletions(-) create mode 100644 src/GF/GFCC/CId.hs diff --git a/src/GF/Command/PPrTree.hs b/src/GF/Command/PPrTree.hs index 2a3aff4da..4067fdec6 100644 --- a/src/GF/Command/PPrTree.hs +++ b/src/GF/Command/PPrTree.hs @@ -1,7 +1,7 @@ module GF.Command.PPrTree (pTree, prExp, tree2exp) where import GF.GFCC.DataGFCC -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import GF.GFCC.Macros import qualified GF.Command.ParGFShell as P import GF.Command.PrintGFShell diff --git a/src/GF/Compile/ShellState.hs b/src/GF/Compile/ShellState.hs index ebb318608..e2e5486ca 100644 --- a/src/GF/Compile/ShellState.hs +++ b/src/GF/Compile/ShellState.hs @@ -17,7 +17,7 @@ module GF.Compile.ShellState where import GF.Data.Operations import GF.Canon.GFC import GF.Canon.AbsGFC -import GF.GFCC.Raw.AbsGFCCRaw(CId(CId)) +import GF.GFCC.CId --import GF.GFCC.DataGFCC(mkGFCC) import GF.Canon.CanonToGFCC import GF.Grammar.Macros diff --git a/src/GF/Conversion/SimpleToFCFG.hs b/src/GF/Conversion/SimpleToFCFG.hs index a85c1843e..081a2485d 100644 --- a/src/GF/Conversion/SimpleToFCFG.hs +++ b/src/GF/Conversion/SimpleToFCFG.hs @@ -24,7 +24,7 @@ import GF.Formalism.FCFG import GF.GFCC.Macros --hiding (prt) import GF.GFCC.DataGFCC -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import GF.Data.BacktrackM import GF.Data.SortedList diff --git a/src/GF/Conversion/Types.hs b/src/GF/Conversion/Types.hs index befc495a0..97c2ace05 100644 --- a/src/GF/Conversion/Types.hs +++ b/src/GF/Conversion/Types.hs @@ -18,7 +18,7 @@ module GF.Conversion.Types where import qualified GF.Infra.Ident as Ident (Ident(..), wildIdent, isWildIdent) import qualified GF.Canon.AbsGFC as AbsGFC (CIdent(..), Label(..)) -import qualified GF.GFCC.Raw.AbsGFCCRaw as AbsGFCC (CId(..)) +import qualified GF.GFCC.CId import qualified GF.Grammar.Grammar as Grammar (Term) import GF.Formalism.GCFG diff --git a/src/GF/Devel/Compile/GFtoGFCC.hs b/src/GF/Devel/Compile/GFtoGFCC.hs index 3fc3331de..2d11e960f 100644 --- a/src/GF/Devel/Compile/GFtoGFCC.hs +++ b/src/GF/Devel/Compile/GFtoGFCC.hs @@ -19,7 +19,7 @@ import GF.Devel.PrintGFCC import qualified GF.GFCC.Macros as CM import qualified GF.GFCC.DataGFCC as C import qualified GF.GFCC.DataGFCC as D -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import GF.Infra.Option ---- import GF.Data.Operations import GF.Text.UTF8 diff --git a/src/GF/Devel/GFCCtoHaskell.hs b/src/GF/Devel/GFCCtoHaskell.hs index 6eccff7e5..787216782 100644 --- a/src/GF/Devel/GFCCtoHaskell.hs +++ b/src/GF/Devel/GFCCtoHaskell.hs @@ -18,7 +18,7 @@ module GF.Devel.GFCCtoHaskell (grammar2haskell, grammar2haskellGADT) where import GF.GFCC.Macros import GF.GFCC.DataGFCC -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import GF.Data.Operations import GF.Text.UTF8 diff --git a/src/GF/Devel/GFCCtoJS.hs b/src/GF/Devel/GFCCtoJS.hs index 542f2dfa7..ca2cfa183 100644 --- a/src/GF/Devel/GFCCtoJS.hs +++ b/src/GF/Devel/GFCCtoJS.hs @@ -2,7 +2,7 @@ module GF.Devel.GFCCtoJS (gfcc2js,gfcc2grammarRef) where import qualified GF.GFCC.Macros as M import qualified GF.GFCC.DataGFCC as D -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import qualified GF.JavaScript.AbsJS as JS import qualified GF.JavaScript.PrintJS as JS diff --git a/src/GF/Devel/GrammarToGFCC.hs b/src/GF/Devel/GrammarToGFCC.hs index 6cbd68793..0ae0129ad 100644 --- a/src/GF/Devel/GrammarToGFCC.hs +++ b/src/GF/Devel/GrammarToGFCC.hs @@ -8,7 +8,7 @@ import qualified GF.Grammar.Lookup as Look import qualified GF.GFCC.Macros as CM import qualified GF.GFCC.DataGFCC as C import qualified GF.GFCC.DataGFCC as D -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import qualified GF.Grammar.Abstract as A import qualified GF.Grammar.Macros as GM --import qualified GF.Grammar.Compute as Compute diff --git a/src/GF/Formalism/FCFG.hs b/src/GF/Formalism/FCFG.hs index 37d5485a8..a630b4230 100644 --- a/src/GF/Formalism/FCFG.hs +++ b/src/GF/Formalism/FCFG.hs @@ -38,7 +38,7 @@ import Data.Array import qualified Data.Map as Map import GF.Formalism.Utilities -import qualified GF.GFCC.Raw.AbsGFCCRaw as AbsGFCC +import qualified GF.GFCC.CId as AbsGFCC import GF.Infra.PrintClass diff --git a/src/GF/GFCC/API.hs b/src/GF/GFCC/API.hs index bf795d91b..e3a7fc3c9 100644 --- a/src/GF/GFCC/API.hs +++ b/src/GF/GFCC/API.hs @@ -19,7 +19,7 @@ import GF.GFCC.Linearize import GF.GFCC.Generate import GF.GFCC.Macros import GF.GFCC.DataGFCC -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import GF.GFCC.Raw.ConvertGFCC import GF.GFCC.Raw.ParGFCCRaw import GF.Command.PPrTree diff --git a/src/GF/GFCC/CId.hs b/src/GF/GFCC/CId.hs new file mode 100644 index 000000000..e4efa98ba --- /dev/null +++ b/src/GF/GFCC/CId.hs @@ -0,0 +1,14 @@ +module GF.GFCC.CId ( + module GF.GFCC.Raw.AbsGFCCRaw, + prCId, + cId + ) where + +import GF.GFCC.Raw.AbsGFCCRaw (CId(CId)) + +prCId :: CId -> String +prCId (CId s) = s + +cId :: String -> CId +cId = CId + diff --git a/src/GF/GFCC/CheckGFCC.hs b/src/GF/GFCC/CheckGFCC.hs index 065e2cb54..a6fd0332d 100644 --- a/src/GF/GFCC/CheckGFCC.hs +++ b/src/GF/GFCC/CheckGFCC.hs @@ -1,6 +1,6 @@ module GF.GFCC.CheckGFCC (checkGFCC, checkGFCCio, checkGFCCmaybe) where -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import GF.GFCC.Macros import GF.GFCC.DataGFCC import GF.GFCC.ErrM diff --git a/src/GF/GFCC/DataGFCC.hs b/src/GF/GFCC/DataGFCC.hs index 74d8948a0..35c8b08c5 100644 --- a/src/GF/GFCC/DataGFCC.hs +++ b/src/GF/GFCC/DataGFCC.hs @@ -1,6 +1,6 @@ module GF.GFCC.DataGFCC where -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import GF.Infra.CompactPrint import GF.Text.UTF8 diff --git a/src/GF/GFCC/Generate.hs b/src/GF/GFCC/Generate.hs index f03718d8c..1924a8849 100644 --- a/src/GF/GFCC/Generate.hs +++ b/src/GF/GFCC/Generate.hs @@ -2,7 +2,7 @@ module GF.GFCC.Generate where import GF.GFCC.Macros import GF.GFCC.DataGFCC -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import qualified Data.Map as M import System.Random diff --git a/src/GF/GFCC/Linearize.hs b/src/GF/GFCC/Linearize.hs index 9618c33e6..826d3597b 100644 --- a/src/GF/GFCC/Linearize.hs +++ b/src/GF/GFCC/Linearize.hs @@ -2,7 +2,7 @@ module GF.GFCC.Linearize where import GF.GFCC.Macros import GF.GFCC.DataGFCC -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import Data.Map import Data.List diff --git a/src/GF/GFCC/Macros.hs b/src/GF/GFCC/Macros.hs index 29d1f6947..3e88952d4 100644 --- a/src/GF/GFCC/Macros.hs +++ b/src/GF/GFCC/Macros.hs @@ -1,6 +1,6 @@ module GF.GFCC.Macros where -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import GF.GFCC.DataGFCC ----import GF.GFCC.PrintGFCC import Data.Map diff --git a/src/GF/GFCC/OptimizeGFCC.hs b/src/GF/GFCC/OptimizeGFCC.hs index c385b069b..394458041 100644 --- a/src/GF/GFCC/OptimizeGFCC.hs +++ b/src/GF/GFCC/OptimizeGFCC.hs @@ -1,6 +1,6 @@ module GF.GFCC.OptimizeGFCC where -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import GF.GFCC.DataGFCC import GF.Data.Operations diff --git a/src/GF/GFCC/Raw/ConvertGFCC.hs b/src/GF/GFCC/Raw/ConvertGFCC.hs index 16f75d9d5..79dae1fd6 100644 --- a/src/GF/GFCC/Raw/ConvertGFCC.hs +++ b/src/GF/GFCC/Raw/ConvertGFCC.hs @@ -59,7 +59,7 @@ toGFCC (Grm [ toType :: RExp -> Type toType e = case e of - App cat [App (CId "hypo") hypos, App (CId "arg") exps] -> + App cat [App (CId "H") hypos, App (CId "X") exps] -> DTyp (lmap toHypo hypos) cat (lmap toExp exps) _ -> error $ "type " ++ show e @@ -70,7 +70,7 @@ toHypo e = case e of toExp :: RExp -> Exp toExp e = case e of - App fun [App (CId "abs") xs, App (CId "arg") exps] -> + App fun [App (CId "B") xs, App (CId "X") exps] -> DTr [x | AId x <- xs] (AC fun) (lmap toExp exps) App (CId "Eq") _ -> EEq [] ---- AMet -> DTr [] (AM 0) [] @@ -125,8 +125,8 @@ fromType :: Type -> RExp fromType e = case e of DTyp hypos cat exps -> App cat [ - App (CId "hypo") (lmap fromHypo hypos), - App (CId "arg") (lmap fromExp exps)] + App (CId "H") (lmap fromHypo hypos), + App (CId "X") (lmap fromExp exps)] fromHypo :: Hypo -> RExp fromHypo e = case e of @@ -135,7 +135,7 @@ fromHypo e = case e of fromExp :: Exp -> RExp fromExp e = case e of DTr xs (AC fun) exps -> - App fun [App (CId "abs") (lmap AId xs), App (CId "arg") (lmap fromExp exps)] + App fun [App (CId "B") (lmap AId xs), App (CId "X") (lmap fromExp exps)] DTr xs (AM _) exps -> AMet ---- EEq _ -> App (CId "Eq") [] ---- _ -> error $ "exp " ++ show e diff --git a/src/GF/GFCC/Raw/GFCCRaw.cf b/src/GF/GFCC/Raw/GFCCRaw.cf index 2ec3fac52..bedaef685 100644 --- a/src/GF/GFCC/Raw/GFCCRaw.cf +++ b/src/GF/GFCC/Raw/GFCCRaw.cf @@ -10,101 +10,3 @@ AMet. RExp ::= "?" ; terminator RExp "" ; token CId (('_' | letter) (letter | digit | '\'' | '_')*) ; - - - - - - - - - - - - - - - - -{- -Grm. Grammar ::= - "grammar" CId "(" [CId] ")" "(" [Flag] ")" ";" - Abstract ";" - [Concrete] ; - -Abs. Abstract ::= - "abstract" "{" - "flags" [Flag] - "fun" [FunDef] - "cat" [CatDef] - "}" ; - -Cnc. Concrete ::= - "concrete" CId "{" - "flags" [Flag] - "lin" [LinDef] - "oper" [LinDef] - "lincat" [LinDef] - "lindef" [LinDef] - "printname" [LinDef] - "param" [LinDef] -- lincats with param value names - "}" ; - -Flg. Flag ::= CId "=" String ; -Cat. CatDef ::= CId "[" [Hypo] "]" ; - -Fun. FunDef ::= CId ":" Type "=" Exp ; -Lin. LinDef ::= CId "=" Term ; - -DTyp. Type ::= "[" [Hypo] "]" CId [Exp] ; -- dependent type -DTr. Exp ::= "[" "(" [CId] ")" Atom [Exp] "]" ; -- term with bindings - -AC. Atom ::= CId ; -AS. Atom ::= String ; -AI. Atom ::= Integer ; -AF. Atom ::= Double ; -AM. Atom ::= "?" Integer ; - -R. Term ::= "[" [Term] "]" ; -- record/table -P. Term ::= "(" Term "!" Term ")" ; -- projection/selection -S. Term ::= "(" [Term] ")" ; -- concatenated sequence -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 -TM. Term ::= "?" ; -- lin of metavariable - -KS. Tokn ::= String ; -KP. Tokn ::= "[" "pre" [String] "[" [Variant] "]" "]" ; -Var. Variant ::= [String] "/" [String] ; - - -RP. Term ::= "(" Term "@" Term ")"; -- DEPRECATED: record parameter alias - -terminator Concrete ";" ; -terminator Flag ";" ; -terminator CatDef ";" ; -terminator FunDef ";" ; -terminator LinDef ";" ; -separator CId "," ; -separator Term "," ; -terminator Exp "" ; -terminator String "" ; -separator Variant "," ; - - - --- the following are needed if dependent types or HOAS or defs are present - -Hyp. Hypo ::= CId ":" Type ; -AV. Atom ::= "$" CId ; - -EEq. Exp ::= "{" [Equation] "}" ; -- list of pattern eqs; primitive: [] -Equ. Equation ::= [Exp] "->" Exp ; -- patterns are encoded as exps - -separator Hypo "," ; -terminator Equation ";" ; - --} diff --git a/src/GF/GFCC/ShowLinearize.hs b/src/GF/GFCC/ShowLinearize.hs index a9365a13b..f627dfd28 100644 --- a/src/GF/GFCC/ShowLinearize.hs +++ b/src/GF/GFCC/ShowLinearize.hs @@ -8,7 +8,7 @@ module GF.GFCC.ShowLinearize ( import GF.GFCC.Linearize import GF.GFCC.Macros import GF.GFCC.DataGFCC -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId --import GF.GFCC.PrintGFCC ---- import GF.Data.Operations diff --git a/src/GF/Parsing/FCFG.hs b/src/GF/Parsing/FCFG.hs index 9fbd3d986..8cd969b69 100644 --- a/src/GF/Parsing/FCFG.hs +++ b/src/GF/Parsing/FCFG.hs @@ -22,7 +22,7 @@ import qualified GF.Parsing.FCFG.Active as Active import GF.Parsing.FCFG.PInfo import GF.GFCC.DataGFCC -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import GF.GFCC.Macros import GF.GFCC.ErrM diff --git a/src/GF/Parsing/FCFG/PInfo.hs b/src/GF/Parsing/FCFG/PInfo.hs index dcdade261..bf2859911 100644 --- a/src/GF/Parsing/FCFG/PInfo.hs +++ b/src/GF/Parsing/FCFG/PInfo.hs @@ -15,7 +15,7 @@ import GF.Formalism.FCFG import GF.Data.SortedList import GF.Data.Assoc import GF.Parsing.FCFG.Range -import qualified GF.GFCC.Raw.AbsGFCCRaw as AbsGFCC +import qualified GF.GFCC.CId as AbsGFCC import Data.Array import Data.Maybe diff --git a/src/GF/Parsing/GFC.hs b/src/GF/Parsing/GFC.hs index 03700daf5..ed450b63f 100644 --- a/src/GF/Parsing/GFC.hs +++ b/src/GF/Parsing/GFC.hs @@ -25,7 +25,7 @@ import qualified GF.Grammar.Grammar as Grammar import qualified GF.Grammar.Macros as Macros import qualified GF.Canon.AbsGFC as AbsGFC import qualified GF.GFCC.DataGFCC as AbsGFCC -import GF.GFCC.Raw.AbsGFCCRaw (CId (..)) +import GF.GFCC.CId import qualified GF.GFCC.ErrM as ErrM import qualified GF.Infra.Ident as Ident import GF.CF.CFIdent (CFCat, cfCat2Ident, CFTok, wordsCFTok, prCFTok) diff --git a/src/GF/Speech/GrammarToVoiceXML.hs b/src/GF/Speech/GrammarToVoiceXML.hs index 7d05d4a46..ad7f25d1c 100644 --- a/src/GF/Speech/GrammarToVoiceXML.hs +++ b/src/GF/Speech/GrammarToVoiceXML.hs @@ -11,7 +11,7 @@ module GF.Speech.GrammarToVoiceXML (grammar2vxml) where import GF.Canon.CanonToGFCC (canon2gfcc) -import qualified GF.GFCC.Raw.AbsGFCCRaw as C +import qualified GF.GFCC.CId as C import GF.GFCC.DataGFCC (GFCC(..), Abstr(..)) import GF.GFCC.Macros import qualified GF.Canon.GFC as GFC diff --git a/src/GF/Speech/TransformCFG.hs b/src/GF/Speech/TransformCFG.hs index 545bc021c..3d7ebd809 100644 --- a/src/GF/Speech/TransformCFG.hs +++ b/src/GF/Speech/TransformCFG.hs @@ -17,7 +17,7 @@ module GF.Speech.TransformCFG where import GF.Canon.CanonToGFCC (canon2gfcc) -import qualified GF.GFCC.Raw.AbsGFCCRaw as C +import qualified GF.GFCC.CId as C import GF.GFCC.Macros (lookType,catSkeleton) import GF.GFCC.DataGFCC (GFCC) import GF.Conversion.Types