pczarn/panini

Add bindings for other languages

pczarn opened this issue · 0 comments

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.