diff options
| author | krasimir <krasimir@chalmers.se> | 2008-10-20 08:42:39 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2008-10-20 08:42:39 +0000 |
| commit | eb0fefec28cf9c089c55f1ef5de9c772faa61786 (patch) | |
| tree | 8d9a8c88ea3bd7c6e5191c79a7722a0fdf76c1b6 /src/PGF/Parsing/FCFG/Incremental.hs | |
| parent | 96bea5a0bbdf749ea6fc50b97e4740e44a56e814 (diff) | |
preparation for dep. types. The -cat option can take any type instead of just a category. The PGF API is generalized as well.
Diffstat (limited to 'src/PGF/Parsing/FCFG/Incremental.hs')
| -rw-r--r-- | src/PGF/Parsing/FCFG/Incremental.hs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/PGF/Parsing/FCFG/Incremental.hs b/src/PGF/Parsing/FCFG/Incremental.hs index e5f64365f..38c2e6c95 100644 --- a/src/PGF/Parsing/FCFG/Incremental.hs +++ b/src/PGF/Parsing/FCFG/Incremental.hs @@ -22,11 +22,11 @@ import PGF.CId import PGF.Data
import Debug.Trace
-parse :: ParserInfo -> CId -> [String] -> [Tree]
-parse pinfo start toks = maybe [] (\ps -> extractExps ps start) (foldM nextState (initState pinfo start) toks)
+parse :: ParserInfo -> Type -> [String] -> [Tree]
+parse pinfo typ toks = maybe [] (\ps -> extractExps ps typ) (foldM nextState (initState pinfo typ) toks)
-initState :: ParserInfo -> CId -> ParseState
-initState pinfo start =
+initState :: ParserInfo -> Type -> ParseState
+initState pinfo (DTyp _ start _) =
let items = do
cat <- fromMaybe [] (Map.lookup start (startCats pinfo))
(funid,args) <- foldForest (\funid args -> (:) (funid,args)) (\_ _ args -> args)
@@ -97,8 +97,8 @@ getCompletions (State pinfo chart items) w = | isPrefixOf w tok = Map.insertWith Set.union tok (Set.singleton item) map
| otherwise = map
-extractExps :: ParseState -> CId -> [Tree]
-extractExps (State pinfo chart items) start = exps
+extractExps :: ParseState -> Type -> [Tree]
+extractExps (State pinfo chart items) (DTyp _ start _) = exps
where
(_,st) = process (\_ _ -> id) (sequences pinfo) (functions pinfo) (Set.toList items) () chart
|
