owl
owl copied to clipboard
A parser generator for visibly pushdown languages.
If I try to implement another "built-in token class" like hexinteger (I will follow the implementation for other builtins), would the PR be excepted? Unfortunately for my usecase I can...
It occurs to me that a C-based custom token matcher is overkill in most cases. For example: ``` .token hex '0x0BADCAFE' '0x248c' .token oct '0644' '0777771' .token bin '11001011b' '10b'...
Cleaned up the automata diagrams a bit. They should be the semantically identical to the originals.  
This is a really nice project, I am considering porting a shell scripting language to a formal owl definition and an owl-based parser as I really like the design of...
Hi there, Awesome project. I love the strict approach taken to validation and the `owl` utility is really nifty and makes writing a definition for an existing language a breeze....
According to https://github.com/ianh/owl/issues/43#issuecomment-1814917290, call and return symbols need to be disjoint. Therefore, https://github.com/ianh/owl/issues/38 is not possible because string literals viewed as a VPL would have an identical call and return...
Hello @ianh, This is essentially the same issue [as this one](https://github.com/mdaines/grammophone/issues/25). I've used that feature to collect a bunch of grammars [here](https://github.com/mdaines/grammophone/issues/26). I think it would be useful if the...
Hello @ianh, I'm wondering, do you have any insights into incremental parsing where VPLs could offer some kind of advantage over, e.g., parsing context free languages using, e.g., LR/LL parsing?...
Owl is awesome, thank you! My proposals: * `range(cp1, cp2)` or `range[cp1, cp2]` - `cp1` and `cp2` are codepoints here (hex or decimal) * `block(name)` - Unicode's script name (`Basic_Latin`,...
I very much like Owl but there's a single feature I miss. In [Lark](https://lark-parser.readthedocs.io/en/stable/json_tutorial.html#part-3-shaping-the-tree) python parsing library there's a neat `?` operator which replaces a node in resulting tree with...