Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Q: non-rust alternative #433

Closed
aep opened this issue Jan 17, 2020 · 2 comments
Closed

Q: non-rust alternative #433

aep opened this issue Jan 17, 2020 · 2 comments

Comments

@aep
Copy link

aep commented Jan 17, 2020

we're migrating away from rust for portability, but leaving pest behind is pretty sad because it's just so good!

given you probably researched alot, is there maybe a list of inspirations you had?

@CAD97
Copy link
Contributor

CAD97 commented Jan 17, 2020

It all depends on what language you're picking for portability.

Antlr is what I personally used before, and has targets for Java, C#, Python, JavaScript, Go, C++, Swift, and PHP (and the Java target even has ambiguous tree construction!).

Tree-sitter generates a pure C runtime with bindings for Rust, JavaScript (WASM), JavaScript (Node Native Modules), Python, Ruby, and Haskell, and ticks the most boxes of Matklad's Modern Parser Generator goals.

Honestly, you're best off searching for whatever language your using's most popular parsing tools/generators, as most generated and aot-machine-optimized parsing is "fast enough," and ease of use in the target language is important as well.

(Though I'm curious: what platforms are you worried about supporting that you'd need a parser generator for?)

@aep
Copy link
Author

aep commented Jan 18, 2020

thank you for your helpful input!

not necessarily portability of the parser. most compilers run on x86 anyway, where rust works fine.
Currently the zz compiler is built in rust for that reason, using pest (feel free to add to the list).

But i'm adding docs and state machine generators now and considering self hosting, depending on what's out there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants