Did you forget to walk barefoot on the grass? A Question
== The Status of the Pep & Nom System
This document attempts to set out in summary way the current status of the Pep (string register) Virtual Machine and the Nom parsing language.
The nom system is becoming a powerful and interesting way to recognise
and transform text patterns. I have begun to use Nom in practical ways, such
as writing text formatters and simple chatbots. A number of the nom
translation scripts in the /tr/ folder are effective and useful. Several of
the scripts in the example folder are practically useful (to me at least).
However, I have been working on this system for a number of years without any collaborators and many areas of the nom system are (ahem...) less than complete and certainly not bug-free (please help!) . Below I document some inadequacies of the system as far as I can remember them
translate.<lang>.pss
are outmoded and should be converted to the grammar and quality of
the scripts called nom.to<lang>.pss
/eg/sed.tojava.pss sed-to-java compiler needs to implement the sed
'jump' syntax and needs to be tested properly. It probably should be converted
to a memory safe language that supports some kind of 'goto' syntax so that
it can support the full range of gnu sed syntax.
/eg/toybnf.pss needs to be expanded so that it can become
useful
/eg/text.tohtml.pss is pretty useful (to me) but it should support
nested lists, and it would be good for it or a clone of it to translate
to man pages, markdown format, latex and epub.
/eg/nom.syntax.reference.pss is quite good at checking
nom syntax and providing helpful error messages, but it needs to have it’s
grammar changed slightly to reflect the grammar in the recent translation
scripts such as /tr/nom.todart.pss
/eg/maths.tolatex.pss creates formulas from plain text, but handles operator
associativity of the power operator ^ incorrectly.
/eg/natural.language.pss “English” language phrase-grammar needs to be
expanded greatly in order to become interesting (for example: by using the
system command to look up word classifications)
/eg/json.check.pss needs to handle Unicode escape sequences
/object/machine.methods.c needs to be updated and debugged
to reflect the code in /object/machine.interp.c (which is the interpreted
version of this). The machine.methods.c is still useful for compiling
standalone executables of nom scripts where other, more modern languages are
not available (for example, on micro-controllers ?)
/eg/nom.toforth.pss needs to be written so that
nom can run easily on micro-controllers, and provide micro-controllers with
high(er) level languages (similar to lua on the nodemcu boards). But this
involves writing memory management code for the tape array which will
be an interesting challenge.