diff options
| author | krasimir <krasimir@chalmers.se> | 2008-05-29 12:08:45 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2008-05-29 12:08:45 +0000 |
| commit | 9a759a66dc33f82f457fc649b669fcc8d32edf3e (patch) | |
| tree | ba7e5a77804767f134e1a6e34ac6a67cc23aa30e /src-3.0/GF/Formalism | |
| parent | 363ddd7b916a48f86f1520350097f83175a0debf (diff) | |
move GF.Formalism.FCFG types to GF.GFCC.DataGFCC
Diffstat (limited to 'src-3.0/GF/Formalism')
| -rw-r--r-- | src-3.0/GF/Formalism/FCFG.hs | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/src-3.0/GF/Formalism/FCFG.hs b/src-3.0/GF/Formalism/FCFG.hs deleted file mode 100644 index 91f954aca..000000000 --- a/src-3.0/GF/Formalism/FCFG.hs +++ /dev/null @@ -1,99 +0,0 @@ ----------------------------------------------------------------------- --- | --- Maintainer : Krasimir Angelov --- Stability : (stable) --- Portability : (portable) --- --- Definitions of fast multiple context-free grammars ------------------------------------------------------------------------------ - -module GF.Formalism.FCFG - ( - -- * Token - FToken - - -- * Category - , FPath - , FCat - - , fcatString, fcatInt, fcatFloat, fcatVar - - -- * Symbol - , FIndex - , FSymbol(..) - - -- * Grammar - , Profile - , FPointPos - , FGrammar - , FRule(..) - ) where - -import Control.Monad (liftM) -import Data.List (groupBy) -import Data.Array -import qualified Data.Map as Map - -import GF.Formalism.Utilities -import GF.GFCC.CId -import GF.Infra.PrintClass - ------------------------------------------------------------- --- Token -type FToken = String - - ------------------------------------------------------------- --- Category -type FPath = [FIndex] -type FCat = Int - -fcatString, fcatInt, fcatFloat, fcatVar :: Int -fcatString = (-1) -fcatInt = (-2) -fcatFloat = (-3) -fcatVar = (-4) - - ------------------------------------------------------------- --- Symbol -type FIndex = Int -data FSymbol - = FSymCat {-# UNPACK #-} !FIndex {-# UNPACK #-} !Int - | FSymTok FToken - - ------------------------------------------------------------- --- Grammar - -type Profile = [Int] -type FPointPos = Int -type FGrammar = ([FRule], Map.Map CId [FCat]) -data FRule = FRule CId [Profile] [FCat] FCat (Array FIndex (Array FPointPos FSymbol)) - ------------------------------------------------------------- --- pretty-printing - -instance Print CId where - prt = prCId - -instance Print FSymbol where - prt (FSymCat l n) = "($" ++ prt n ++ "!" ++ prt l ++ ")" - prt (FSymTok t) = simpleShow (prt t) - where simpleShow str = "\"" ++ concatMap mkEsc str ++ "\"" - mkEsc '\\' = "\\\\" - mkEsc '\"' = "\\\"" - mkEsc '\n' = "\\n" - mkEsc '\t' = "\\t" - mkEsc chr = [chr] - prtList = prtSep " " - -instance Print FRule where - prt (FRule fun profile args res lins) = - prt fun ++ prtProf profile ++ " : " ++ (if null args then "" else prtSep " " args ++ " -> ") ++ prt res ++ - " =\n [" ++ prtSep "\n " ["("++prtSep " " [prt sym | (_,sym) <- assocs syms]++")" | (_,syms) <- assocs lins]++"]" - where - prtProf [] = "?" - prtProf args = prtSep "=" args - - prtList = prtSep "\n" |
