summaryrefslogtreecommitdiff
path: root/src/GF/Formalism/FCFG.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-06-25 16:43:48 +0000
committeraarne <aarne@cs.chalmers.se>2008-06-25 16:43:48 +0000
commitb96b36f43de3e2f8b58d5f539daa6f6d47f25870 (patch)
tree0992334be13cec6538a1dea22fbbf26ad6bdf224 /src/GF/Formalism/FCFG.hs
parentfe367412e0aeb4ad5c02de68e6eca382e0f96984 (diff)
removed src for 2.9
Diffstat (limited to 'src/GF/Formalism/FCFG.hs')
-rw-r--r--src/GF/Formalism/FCFG.hs106
1 files changed, 0 insertions, 106 deletions
diff --git a/src/GF/Formalism/FCFG.hs b/src/GF/Formalism/FCFG.hs
deleted file mode 100644
index 5f9656658..000000000
--- a/src/GF/Formalism/FCFG.hs
+++ /dev/null
@@ -1,106 +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(..)
-
- -- * Name
- , FName
- , isCoercionF
-
- -- * Grammar
- , 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 qualified GF.GFCC.CId as AbsGFCC
-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 #-} !FCat {-# UNPACK #-} !FIndex {-# UNPACK #-} !Int
- | FSymTok FToken
-
-
-------------------------------------------------------------
--- Name
-type FName = NameProfile AbsGFCC.CId
-
-isCoercionF :: FName -> Bool
-isCoercionF (Name fun [Unify [0]]) = fun == AbsGFCC.CId "_"
-isCoercionF _ = False
-
-
-------------------------------------------------------------
--- Grammar
-
-type FPointPos = Int
-type FGrammar = ([FRule], Map.Map AbsGFCC.CId [FCat])
-data FRule = FRule FName [FCat] FCat (Array FIndex (Array FPointPos FSymbol))
-
-------------------------------------------------------------
--- pretty-printing
-
-instance Print AbsGFCC.CId where
- prt (AbsGFCC.CId s) = s
-
-instance Print FSymbol where
- prt (FSymCat c 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 name args res lins) = prt name ++ " : " ++ (if null args then "" else prtSep " " args ++ " -> ") ++ prt res ++
- " =\n [" ++ prtSep "\n " ["("++prtSep " " [prt sym | (_,sym) <- assocs syms]++")" | (_,syms) <- assocs lins]++"]"
- prtList = prtSep "\n"