Comments (8)
I completed the first version of the standardized grammar here:
Also, I think the scope of this issue should change to instead porting Dhall to natively integrate with either C, C++, or Rust, since I assume that an implementation in one of those languages can (with some effort) be reused by other languages that can bind to C
from dhall-lang.
I think an even more important first step is to just specify the language grammar using BNF or ABNF syntax (as part of standardizing the language) and then focus on porting to specific languages or libraries
from dhall-lang.
One pain point might be that hammer is made for binary parsing, so Unicode is not supported at all.
from dhall-lang.
Complementing what Gabriel has said, here is a good resource on BNFs and EBNFs: What are they and how do they work.
The good thing of such formal specifications are:
- Ambiguity is not a concern anymore: the language becomes 100% defined.
- There are automatic compiler generators, like YACC, which can parse BNF and give you a compiler for your grammar.
from dhall-lang.
First pass at full ABNF grammar for Dhall here: #14
from dhall-lang.
I'll change the title of the issue to reflect the new scope
from dhall-lang.
https://github.com/Nadrieril/dhall-rust is now a thing. Does that close this issue ?
from dhall-lang.
Basically, since I expect most languages to get FFI for rust code sooner or later. And if not, we could expose it as a C library.
from dhall-lang.
Related Issues (20)
- Cannot import prelude HOT 6
- Time/Date arithmetic
- Reflection or converting types to values HOT 2
- Cannot Decode Expression with extended Builtin Function HOT 1
- Q. Are you interested in syntax diagrams for Dhall? HOT 6
- Reversing order of Merge and Selection? HOT 2
- Too many duplicate type annotations? HOT 2
- `with` record update syntax removes other record fields HOT 4
- ABNF grammar should list "as Bytes" import mode
- Should the ABNF grammar disallow shebangs inside expressions? HOT 1
- eta-reducing to merge HOT 4
- Builtins operators reference: Missing record projection HOT 2
- ABNF grammar should explicitly disallow keywords as identifiers? HOT 2
- ABNF grammar should include a mandatory whitespace after `import-hashed`? HOT 1
- Improvements and fixes in the standard documentation HOT 3
- Is this an incorrect test file: `dhall-lang/tests/import/success/unit/ImportRelativeToHomeB.dhall`? HOT 2
- Link to non existing tweet
- A minimalistic proposal for do-notation
- Thoughts on introducing a minimum amount of type inference in Dhall HOT 1
- Introduce Bytes/length and Text/length as built-ins? HOT 3
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 dhall-lang.