mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
simple optimization of the parser that makes it about two times faster
This commit is contained in:
@@ -174,8 +174,12 @@ initialTD pinfo starts toks =
|
|||||||
|
|
||||||
initialBU :: FCFPInfo -> Input FToken -> [(FCat,Item)]
|
initialBU :: FCFPInfo -> Input FToken -> [(FCat,Item)]
|
||||||
initialBU pinfo toks =
|
initialBU pinfo toks =
|
||||||
do tok <- aElems (inputToken toks)
|
do (tok,rngs) <- aAssocs (inputToken toks)
|
||||||
ruleid <- leftcornerTokens pinfo ? tok ++
|
ruleid <- leftcornerTokens pinfo ? tok
|
||||||
epsilonRules pinfo
|
let FRule _ _ cat _ = allRules pinfo ! ruleid
|
||||||
|
(i,j) <- rngs
|
||||||
|
return (cat,Active [] (makeRange i j) 0 1 (emptyChildren ruleid pinfo))
|
||||||
|
++
|
||||||
|
do ruleid <- epsilonRules pinfo
|
||||||
let FRule _ _ cat _ = allRules pinfo ! ruleid
|
let FRule _ _ cat _ = allRules pinfo ! ruleid
|
||||||
return (cat,Active [] EmptyRange 0 0 (emptyChildren ruleid pinfo))
|
return (cat,Active [] EmptyRange 0 0 (emptyChildren ruleid pinfo))
|
||||||
|
|||||||
Reference in New Issue
Block a user