Comments (3)
Hello @venkatd and thanks for your question.
The thing with grammars is that each parser or tool seems to have their own interpretation of BNF-like syntax. We went with EBNF because it has an ISO standard (ISO14977), but we do not expect that the generated artifact (the EBNF grammar) will be readily consumed in its raw form. Rather we'd expect some tool to have to rewrite it into the target flavour of EBNF syntax, and I think it would be possible to do so for ABNF as well.
It would probably also be possible to add a custom ABNF-writer, however, which perhaps is what you really were after. You're correct that we are generating the grammars from an XML specification. This XML specification is what we regard as the source of truth (although it is not currently complete), rather than the generated BNF grammars. We do currently have two such writers, one that uses ISO14977 format, and one that uses Antlrv4 format (http://www.antlr.org/). I don't see any immediate blockers to adding another subclass of BnfWriter
, AbnfWriter
or similar, that would output the grammar in the ABNF format. From the little I've gathered on ABNF so far, it seems to be similar enough to EBNF that the current ISO14977 implementation could be of good use in such an effort.
As for our own plans, we do not currently intend on adding more output formats, but we welcome both the discussion and possible contributions, if you are interested in implementing something like this yourself.
All the best
Mats
from opencypher.
ABNF is defined in RFC5234, like Mats says it should be pretty simple to implement a generator for that format.
from opencypher.
I'm closing this as answered. Please reopen if there are any follow-up questions.
from opencypher.
Related Issues (20)
- Deleting the relationship for the dynamic labels in UNWIND HOT 1
- Issue in UNWIND option for duplicate records HOT 2
- Performance is very poor for the create/update relationships HOT 1
- Any plan to release Cypher 10? HOT 3
- Beta version missing dependency ?
- Problem parsing oC_MultiPartQuery with ANTLR4 HOT 3
- OpenCypher Antlr - strange parse tree (c#) HOT 3
- Improve the use of lists stored as property HOT 3
- missing children from `OC_ComparisonExpressionContext` in cpp-runtime of ANTLR HOT 2
- Incomplete EBNF Grammar HOT 9
- NULL token name is a reserved word in C++ HOT 2
- MANDATORY MATCH HOT 3
- Invalid syntax HOT 3
- Commit the .ebnf output into the repo HOT 1
- User defined function in custom namespace parsed as property lookup if function name is a keyword HOT 3
- Validating ``WHERE (value in property)``
- TCK only published with features
- RedisGraph: EOL
- Question on Semantics of WITH clause HOT 1
- Grammar 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 opencypher.