summaryrefslogtreecommitdiff
path: root/src/GF/Parsing/GFC.hs
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2006-06-08 21:23:29 +0000
committerkr.angelov <kr.angelov@gmail.com>2006-06-08 21:23:29 +0000
commit694f6eb984c8f22fe042e210b0671062accba8c7 (patch)
tree32faab2fafad6a46a4f2c2b1321dd51634749c1e /src/GF/Parsing/GFC.hs
parent98d0af8d73ee56fdb9c64626e173eec0ebbce5e7 (diff)
code polishing for the literal category support
Diffstat (limited to 'src/GF/Parsing/GFC.hs')
-rw-r--r--src/GF/Parsing/GFC.hs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/GF/Parsing/GFC.hs b/src/GF/Parsing/GFC.hs
index 0a0b3892c..6283bfe78 100644
--- a/src/GF/Parsing/GFC.hs
+++ b/src/GF/Parsing/GFC.hs
@@ -60,10 +60,10 @@ buildPInfo mcfg fcfg cfg = PInfo { mcfPInfo = PM.buildMCFPInfo mcfg
where
grammarLexer s =
case reads s of
- [(n::Integer,"")] -> (fcatInt, TInt n)
+ [(n::Integer,"")] -> (fcatInt, SInt n)
_ -> case reads s of
- [(f::Double,"")] -> (fcatFloat, TFloat f)
- _ -> (fcatString,TString s)
+ [(f::Double,"")] -> (fcatFloat, SFloat f)
+ _ -> (fcatString,SString s)
instance Print PInfo where
@@ -119,10 +119,7 @@ selectParser "m" strategy pinfo startCat inTokens
isStart cat = mcat2scat cat == cfCat2Ident startCat
mcfpi = mcfPInfo pinfo
mcfParser <- PM.parseMCF strategy
- let mcfChart = tracePrt "Parsing.GFC - MCF chart" (prt . length) $
- mcfParser mcfpi startCats inTokens
- chart = tracePrt "Parsing.GFC - chart" (prt . length . concat . map snd . aAssocs) $
- G.abstract2chart mcfChart
+ let chart = mcfParser mcfpi startCats inTokens
finalEdges = tracePrt "Parsing.GFC - final chart edges" prt $
[ PM.makeFinalEdge cat lbl (inputBounds inTokens) |
cat@(MCat _ [lbl]) <- startCats ]
@@ -134,7 +131,10 @@ selectParser "f" strategy pinfo startCat inTokens
isStart cat = fcat2scat cat == cfCat2Ident startCat
fcfpi = fcfPInfo pinfo
fcfParser <- PF.parseFCF strategy
- return $ fcfParser fcfpi startCats inTokens
+ let chart = fcfParser fcfpi startCats inTokens
+ (i,j) = inputBounds inTokens
+ finalEdges = [PF.makeFinalEdge cat i j | cat <- startCats]
+ return $ chart2forests chart (const False) finalEdges
-- error parser:
selectParser prs strategy _ _ _ = Bad $ "Parser '" ++ prs ++ "' not defined with strategy: " ++ strategy