bnfc
bnfc copied to clipboard
BNF Converter
Given grammar: ``` Priv. Decl ::= "private" "{" [Decl] "}" ; separator Decl ";" ; layout "private" ; ``` The following is accepted but should not, without top-level layout: ```...
This fails in some backends: ``` CNil. Chars ::= ; cSg. Chars ::= Char ; CSnoc. Chars ::= Chars Dot Char ; define cSg c = CSnoc CNil (Dot ".")...
BNFC generates various names (files, directories, classes, ...) based on the filename of the input grammar (e.g. `Lang.cf`). Not all backends will be able to deal with all legal choices...
The GADT version of the Haskell backend does not appear to respect `--text-token` or `--functor`; I don't know GADTs well enough to know if the functor representation is possible (though...
Here is a partial grammar of SQL that I'd like to add to the example suite: https://github.com/GrammaticalFramework/gf-contrib/blob/master/query-converter/MinSQL.bnf SQL has case-insensitive keywords. This is a feature we could add to BNFC...
This came up in an old issue I was looking at, concerning Cabal integration. (By the way, Stack integration may or may not work automatically if Cabal integration is added....
The `--functor` CLI option adds position information to the generated AST. It seems to do so except for `token`s. The language `position token` makes tokens include position info. Is there...
We would like the following aspects supported by a feature that allows us to define lists: 1. Concerning even AST: - several list categories for one category - non-empty vs....
When using the parser generated by the grammar fragment ``` position token TokLet {"let"}; position token TokIn {"in"}; ELet. Expr ::= TokLet "{" [Expr] "}" TokIn Expr; layout "let"; layout...
If we create a [tree-sitter](https://tree-sitter.github.io/tree-sitter/) backend, we could get basic editor support for all languages using BNFC with almost no work. Tree-sitter grammars are the defacto way of implementing highlighting...