The monkey knows which tree it is climbing up. Colombian saying
This folder contains some example scripts in the ℕ𝕠𝕞 script language. Scripts have the file extension “.pss”. These examples can be run using the interpreter and debugger (the “pep” interpreter) or by translating to rust | dart | perl | lua | go | java | javascript | ruby | python | tcl | c and then (maybe compiling and) running.
/doc/doc.dir.index.html
contains a list of scripts and documents
in this folder.
Documentation for the
ℕ𝕠𝕞 language and
ℙ𝕖𝕡 virtual machine is
in the /doc/
folder.
The scripts which begin with ro. are solutions (or attempted solutions) to problems on the www.rosettacode.org site. For example the script ro.balanced.brackets.pss solves the balanced_brackets problem .
pep -f eg/script.pss <inputfile>
# or
pep -f eg/script.pss -i <inputtext>
Examples can be translated into rust | dart | perl | lua | go | java | javascript | ruby | python | tcl | c by running the appropriate translation script.
pep -f tr/translate.go.pss eg/script.pss > script.go
go build script.go
echo "<input>" | ./script
Also the script /eg/nom.to.pss
will translate a script with a simple
prompt.
pep -f nom.to.pss -i 'translate script.pss to rust'
Some scripts also have self-translation (for example /eg/json.check.pss
and /eg/maths.tolatex.pss
and /eg/text.tohtml.pss)
/eg/xml.parse.pss
is an
XML parser and error checker
/eg/nom.reference.syntax.pss
is a syntax checker for the
ℕ𝕠𝕞
language which provides precise error messages.
/eg/json.check.pss
checks the syntax of a
JSON text data file.
/eg/text.tohtml.pss
transforms a “plain-text” (minimal mark-up) document
into html
/eg/sed.tojava.pss
transpiles a gnu
SED script into the
JAVA language
(branch syntax with 't' etc is not supported because java has not [goto]
statement )
/eg/maths.parse.pss
parses and error checks arithmetic infix
expressions.
/eg/maths.tolatex.pss
transforms arithmetic, symbolic and logical
expressions into printable
LATEX formulas.
/eg/exp.tolisp.pss
transforms an arithmetic infix expression into
LISP This is a simpler and older version of the 2 scripts above
/eg/toybnf.pss
translates simple
BNF type grammar rules into
ℕ𝕠𝕞 scripts. This is the basis for a bnf style parsing
and compiling language
/eg/natural.language.pss
implements a limited natural language (English)
parser. I plan to expand this with a better 'phrase grammar'
/eg/tocfoot.tohtml.pss
demonstrates creating a table of contents
and a footer (for footnotes) and using markers in the source document
to place the table of contents and footers (this uses [toc] and [foot]
as markers.
.noself. in the filenames means that there is no self-translation or self-help or self-testing in the script.
The scripts are often named for the format or language that they translate
to such as text.tohtml.pss
or nom.tolatex.pss
/eg/drawlang.pss
which transpiles to python, but
I haven't continued.