Comments (5)
Thanks! Embarrassingly, I was trying to get that information by calling format!(โ{:?}โ, foo)
on the output of the parse_input
function and using regular expressions to parse it. The lengths to which one will go!
from bnf.
Hey @Axiomatic-Mind ๐ as to your first question, whether parse_input
returns a list of parse trees or not is mostly up to your grammar, and things like grammars for programming languages usually shouldn't have ambiguous ways to interpret a sentence. But grammars for natural language can be full of ambiguities that can lead to multiple parse trees. My personal favorite example of the kind of sentence that would lead a parser like this to return multiple trees is "Time flies like an arrow". Where we're either talking about the concept of time moving quickly, or something more like a plot line from Doctor Who, i.e. "Time flies like an arrow. Fruit flies like a banana."
As to your second question, it's a great point! ParseTreeNode probably needs to be exposed!
from bnf.
Thanks so much for #106! I've published version 0.4.1 to crates.io now so you should be able to use your changes
from bnf.
Thanks for noticing this issue @Axiomatic-Mind ! totally just an oversight. And double thanks for opening a PR ๐
from bnf.
My pleasure๐
from bnf.
Related Issues (20)
- 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.