bugfix: the optimizer should not filter out rules that refer to lexical categories
This commit is contained in:
1 parent
ea9aed6ff8
commit
5f0a68c1a4
2 files changed
+3
-5
No files matched your search
+3
-1
@@ -50,6 +50,8 @@ fcatInt = (-2)
|
||||
fcatFloat = (-3)
|
||||
fcatVar = (-4)
|
||||
|
||||
isLiteralFCat :: FCat -> Bool
|
||||
isLiteralFCat = (`elem` [fcatString, fcatInt, fcatFloat, fcatVar])
|
||||
|
||||
ppPMCFG :: ParserInfo -> Doc
|
||||
ppPMCFG pinfo =
|
||||
@@ -101,6 +103,6 @@ ppSeqId seqid = char 'S' <> int seqid
|
||||
filterProductions prods =
|
||||
fmap (Set.filter filterRule) prods
|
||||
where
|
||||
filterRule (FApply funid args) = all (\fcat -> IntMap.member fcat prods) args
|
||||
filterRule (FApply funid args) = all (\fcat -> isLiteralFCat fcat || IntMap.member fcat prods) args
|
||||
filterRule (FCoerce _) = True
|
||||
filterRule _ = True
|
||||
Reference in new issue
Block a user