Add bindings for other languages
pczarn opened this issue · 0 comments
pczarn commented
Let's write bindings to as many languages as possible. In no particular order of importance...
- C
- C++ through C
- D
- C# / .NET
- Java / JVM
- Python
- Lua
- Ruby
- Perl
- Go
- Swift
- Javascript through WebAssembly
- Nim
- Scala
Up to three parts of Panini can have bindings.
- the parser generator (the hardest),
- the engine,
- the CFG toolkit.
Porting the parser generator is very hard, since code must be generated in other languages. However, we can transpile Rust code through MIR to C. From there, generated parsers can be automatically ported to most languages.
Porting all other functionality is straightforward, but less useful.