Introducing packrat.nut, the first general-purpose parsing library for Squirrel!
Regular expressions not enough? Define grammars in a readable and intuitive way, in your Squirrel code, either in a string or with a DSL.
This has been a passion-project for me, where I could:
- tackle a difficult but common problem (parsing)
- evaluate a range of interesting algorithms
- implement an interesting algorithm, in a language where it hasn’t been before
- use advanced features of the language (e.g. metamethods) in a novel way
- contribute some new functionality to the Squirrel ecosystem
Memory usage is likely to be a limiting factor for real-world applications, however the example code shows that the library can be used to parse a JSON string of reasonable length and complexity (when run on the agent). I’ve not had reason to use it in another project myself yet, but I think it would have been useful in previous projects for parsing a subset of XML to deal with certain external APIs which would only respond with (reasonably small) XML documents.