Comments (3)
I wasn't commenting on your codebase readability when I mentioned it. But I was wondering how complicated would have to be to be able to support complicated configurations i.e enabling A and C but not B and D. Therefore, if this proves to be too complicated, requiring major overhaul, then I think there is a point to keeping it simple.
However, since you mentioned it, I think its worth it to try to use the lingo used by ISO 14977 for EBNF in the codebase + some documentation and possibly exposing the parser API.
If you are open to PRs I am already trying to work on this. I think the parser code have lots of duplication. I am also trying to add validation as a feature.
from bnf.
Hey @hbina thanks for raising an issue! It sounds like you're asking a couple things, one is for some extended syntax support and another is for the code to be more readable? I'm definitely interested in extending this library to support EBNF syntax, there's been some prior efforts here #54 but I'm not sure what the status there is. If there's something outside of what EBNF covers that you'd like to see, it'd be great if you were able to list it here for me.
As for readability, if there's specific areas where you feel there are issues I'm happy to tackle it if you'd list that here too.
Fwiw, I think I like the idea of extending the lib without needing to compile with feature flags (i.e. #[cfg(feature = "ebnf")]
). I started a conversation awhile ago about what I'd imagined EBNF support might look like here #17
from bnf.
I'm totally open to PRs 😄
from bnf.
Related Issues (20)
- 2 Questions about Parsing HOT 5
- Empty String Rules Fail to Match HOT 4
- Empty String Rules (Still) Fail to Match HOT 7
- faster production matching while earley parsing
- reusable grammar parser
- Nullable productions (Still, Still) Fail to Match HOT 6
- Right-recursive productions Fail to Match
- Broken coverage report HOT 6
- report the faulty character / line / column / offset when no parse trees are generated HOT 3
- How to use the bnf lib in sql parse function HOT 7
- Undefined nonterminal is accepted in bnf parsing HOT 2
- Order of Rules Affects Parsing HOT 2
- compare Criterion & Divan HOT 1
- Rethink Grammar::generate logic HOT 5
- Generate code coverage reports as a step in our GitHub actions HOT 1
- Nullable Rules?
- suggestion: extract bnf test-cases to their own .bnf files? HOT 3
- Ability to parse BNF grammars at compile time HOT 3
- Iterator::size_hint
- Include README.md as documentation in lib.rs HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bnf.