summaryrefslogtreecommitdiff
path: root/src-3.0/GF/Formalism
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2008-05-29 12:08:45 +0000
committerkrasimir <krasimir@chalmers.se>2008-05-29 12:08:45 +0000
commit9a759a66dc33f82f457fc649b669fcc8d32edf3e (patch)
treeba7e5a77804767f134e1a6e34ac6a67cc23aa30e /src-3.0/GF/Formalism
parent363ddd7b916a48f86f1520350097f83175a0debf (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.hs99
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"