The lmn language is a MetaLanguage that is used for writing rules that are to be applied by the LanguageMachine. It embeds a notation for expressing side-effects and computations in a notation for describing grammatical substitution rules.
Collections of rules in lmn can be compiled as SheBang scripts, or as modules of source text in C (CeeLanguage) or D (DeeLanguage). When used to create SheBang scripts, lmn operates as a kind of grammatical ScriptingLanguage.
The computation language is modelled on a small subset of JavaScript, with function calls mapped to builtin and user-supplied external procedures in either C (CeeLanguage) or D (DeeLanguage).
The rule description language deals with rules that belong to named grammars and can have priority constraints which limit permissible nestings of rule left-side recognition phases.
The lexical form of the language is based on the Mediawiki markup conventions, with preformatted text treated as material to be analysed by the metalanguage compiler, and all other text being treated as annotation that may contain wiki markup. As a result, an html page can be generated directly from the source text of an lmn ruleset.
The complete source of the lmn metalanguage frontend can be seen as an html page at http://languagemachine.sourceforge.net/lmn2xfe.html.
There are at present five flavours of the metalanguage compiler, each of which is created by combining different collections of backend rules with the same set of frontend rules.