BNFC.GetCF
Description
Check LBNF input file and turn it into the CF internal representation.
CF
parseCF :: SharedOptions -> Target -> String -> IO CF Source #
Entrypoint.
checkRule :: CF -> Rule -> Maybe String Source #
transItem :: Item -> [Either Cat String] Source #
Translate a rule item (terminal or non terminal) It also sanitizes the terminals a bit by skipping empty terminals or splitting multiwords terminals. This means that the following rule
Foo. S ::= "foo bar" ""
is equivalent to
Foo. S ::= "foo" "bar"