The Language Machine is a language and grammar software toolkit that is available for free.
One of the standout features of The Language Machine is its ability to directly implement unrestricted rule-based grammars with actions and external interfaces. The included diagram is a unique way to visualize rule sets in action.
Here are some of the key features I discovered during my review:
- Rules describe how to recognize and transform grammatical input
- The left-side of a rule describes a pattern
- The right-side of a rule describes how the pattern is treated
- The left- and right-sides are unrestricted pattern generators
- The system is a kind of symbolic engine for grammar
- The metalanguage is very simple and concise
- Multiple grammars, rule priorities, left-recursion, and right-recursion are supported
- Variables and associative arrays are supported, similar to a subset of Javascript
- Transformed representations can include actions and side-effects
- Transformed representations can themselves be analyzed as input
- Can be used as a free-standing engine or as a shared library
- Can be packaged together with precompiled rules
- Simple interface to external procedures in C and D languages
- Built-in diagnostics with lm-diagram generator
- Several self-hosted metalanguage compilers with a single frontend
- Compiled rules can be wrapped as shell scripts or as C or D programs
- Rules can be compiled to C or D code
- Metalanguage source can be treated as wiki text in the Mediawiki format
The latest release includes some bugfixes to the metalanguage, as well as improvements to the build and test process with dmd in msys/mingw. Overall, I was impressed with The Language Machine's capabilities and would recommend it to anyone looking for a powerful language and grammar toolkit.
Version 0.2.5: N/A