rekex
npeg
rekex | npeg | |
---|---|---|
16 | 2 | |
53 | 326 | |
- | - | |
0.0 | 5.1 | |
over 2 years ago | about 2 months ago | |
Java | Nim | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rekex
-
Java 17 Features: Pattern Matching for switch and Sealed Classes
My thoughts on these 3 kinds of datatypes - https://github.com/zhong-j-yu/rekex/blob/main/doc/Datatypes_Abstract_OOP_Algebraic.md
-
A new parser generator for Java 17, with grammar as algebraic datatypes
You don't need a separate grammar file. The set of datatypes defines the grammar. Take a look at the calculator exmample, the datatype Exp0 defines a grammar rule: Exp0 is one or more Exp1 separated by "+" or "-".
- The simplest way to write a parser
- Show HN: The Simplest Parser Generator
- Datatypes – Abstract, OOP, Algebraic
-
[Discussion] To use var or explicit typing
I also found it more pleasing to use var in a method with lots of local variables of a common type, see this example
-
A better way to construct regex
The parent project, https://github.com/zhong-j-yu/rekex , is a parser generator that mirrors grammar rules with datatypes. Since recursive types are not a problem, we don't have have a problem with recursive grammar rules.
- Show HN: Rekex – parser generator that derives grammar from parse tree datatypes
-
RegExp - structured regular expression
Here's how URI regex looks like using the API: https://github.com/zhong-j-yu/rekex/blob/main/rekex-example/src/main/java/org/rekex/exmple/regexp/ExampleRegExp_Uri.java
npeg
-
Pratt Parsers: Expression Parsing Made Easy
Ha, nice to see this on HN: this article was pretty helpful to me to understand the concept a few years back when extending my PEG parsing library [1] with a Pratt parser; this mitigates the problem of PEG parsers not allowing left recursion and allows for a much more concise notation of grammars with operator precedence. Thank you Bob:
1. https://github.com/zevv/npeg
-
Nim v2.0 Released
Ones that have not been mentioned so far:
nlvm is an unofficial LLVM backend: https://github.com/arnetheduck/nlvm
npeg lets you write PEGs inline in almost normal PEG notation: https://github.com/zevv/npeg
futhark provides for much more automatic C interop: https://github.com/PMunch/futhark
nimpy allows calling Python code from Nim and vice versa: https://github.com/yglukhov/nimpy
questionable provides a lot of syntax sugar surrounding Option/Result types: https://github.com/codex-storage/questionable
ratel is a framework for embedded programming: https://github.com/PMunch/ratel
cps allows arbitrary procedure rewriting to continuation passing style: https://github.com/nim-works/cps
chronos is an alternative async/await backend: https://github.com/status-im/nim-chronos
zero-functional fixes some inefficiencies when chaining list operations: https://github.com/zero-functional/zero-functional
owlkettle is a declarative macro-oriented library for GTK: https://github.com/can-lehmann/owlkettle
A longer list can be found at https://github.com/ringabout/awesome-nim.
What are some alternatives?
RRDiagram - Generate railroad diagrams from code or BNF, generate BNF from code
awesome-nim - A curated list of awesome Nim frameworks, libraries, software and resources.
parboiled - Elegant parsing in Java and Scala - lightweight, easy-to-use, powerful.
jsony - A loose, direct to object json parser with hooks.
autumn - A Java parser combinator library written with an unmatched feature set.
futhark - Automatic wrapping of C headers in Nim
Calculator
torrentinim - A very low memory-footprint, self hosted API-only torrent search engine. Sonarr + Radarr Compatible, native support for Linux, Mac and Windows.
nlvm - LLVM-based compiler for the Nim language
mummy - An HTTP and WebSocket server for Nim that returns to the ancient ways of threads.
FrameworkBenchmarks - Source for the TechEmpower Framework Benchmarks project
pixie - Full-featured 2d graphics library for Nim.