summaryrefslogtreecommitdiff
path: root/src/GF/Compile/GenerateFCFG.hs
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-06-16 11:56:08 +0000
committerkrasimir <krasimir@chalmers.se>2009-06-16 11:56:08 +0000
commit8bc8929c59d2bd6f28d5dab9c7a9ca8a1c23609e (patch)
tree84244e9cc3b969e86167b309538dfe08d7374630 /src/GF/Compile/GenerateFCFG.hs
parentb442cde3bd01fb935c215446097592510cf8e713 (diff)
completely phrase based parser and support for pre {} in PMCFG
Diffstat (limited to 'src/GF/Compile/GenerateFCFG.hs')
-rw-r--r--src/GF/Compile/GenerateFCFG.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/GF/Compile/GenerateFCFG.hs b/src/GF/Compile/GenerateFCFG.hs
index 7597e71dd..096572659 100644
--- a/src/GF/Compile/GenerateFCFG.hs
+++ b/src/GF/Compile/GenerateFCFG.hs
@@ -158,7 +158,10 @@ translateLin idxArgs ((lbl,syms) : lins) grammarEnv lbl'
| lbl' == lbl = addFSeq grammarEnv (lbl,map instSym syms)
| otherwise = translateLin idxArgs lins grammarEnv lbl'
where
- instSym = either (\(lbl, nr, xnr) -> instCat lbl nr xnr 0 idxArgs) FSymTok
+ instSym = either (\(lbl, nr, xnr) -> instCat lbl nr xnr 0 idxArgs)
+ (\t -> case t of
+ KS s -> FSymKS [s]
+ KP strs vars -> FSymKP strs vars)
instCat lbl nr xnr nr' ((idx,xargs):idxArgs)
| nr == idx = let (fcat, PFCat _ rcs _) = xargs !! xnr
in FSymCat (nr'+xnr) (index lbl rcs 0)