Pep and Nom
home |
documentation |
download |
blog |
all blog posts
-
index.html
-
This folder contains information about the Nom language as it
is defined in compile.pss
-
nom.syntax.begin.html
-
The begin block: nom code that is executed once at the beginning
of the script.
-
nom.syntax.block.html
-
Nom blocks : grouping statements together to create grammar
rule reductions.
-
nom.syntax.classes.html
-
Character classes are written [:space:] [:alnum:] etc.
The pep the c language implementation of the parse machine and language uses
plain
ctype.h
character classes as a way of grouping characters.
-
nom.syntax.comments.html
-
Including comments in
NOM scripts.
-
nom.syntax.errorcheck.html
-
This document outlines or sketches how to error check the nom syntax. It will
try to use new state-of-the-art error checking techniques that I have
discovered (like pushing an error* token to reduce the verbosity of the
script) and it will be a “green-fields”
NOM parser meaning that I will not
base the code on previous translators or compilers. This will
allow me to use things that I have learnt since about 2019 when I first
managed to code a decent implementation of the
PEP engine and the
NOM
language.
-
nom.syntax.negation.html
-
About the nom negation operator !
-
nom.syntax.parselabel.html
-
This label is used to mark the start of the parsing and
“compiling” phase of the nom script. The section before the
parse> label is the en.wikipedia.org/wiki/lexical_analysis phase of the script where
text patterns are turned into grammar tokens.
-
nom.syntax.quotes.html
-
Both single and double quotes may be used in scripts and they have exactly
the same role in the syntax of the nom language. But quoted text which
starts with a double quote (") must end with a double quote, and the same
rules applies to single quotes.
-
nom.syntax.regex.html
-
This could be the shortest document here: There are
no
regular expressions in the nom language
and the pep virtual machine . This may seems a
strange and self-defeating design decision, but I believe it is not.
-
nom.syntax.semicolon.html
-
The role of the semicolon ; in syntax of the
NOM language.
-
nom.syntax.statement.html
-
A statement is a command followed by one or more parameters
(quoted text) and a semi-colon. The parameters are not
separated
by commas.
-
nom.syntax.tests.html
-
Information about block 'tests' in the nom language.
-
nom.syntax.token.html
-
Grammar parse tokens in the
NOM language.
-
nom.syntax.html
-
An overview of the syntax of the
NOM parsing language.
-
nom.syntax.whitespace.html
-
The role of whitespace in the syntax of the
NOM language.
-
test.pss
-
read;
[:alnum:] {
while [:alnum:]; put;
clear; add “word*"; push; .reparse” }
parse>
!"" {
put; clear;
add “! Incorrect character :” ; get; add “\n";” add “! (only alpha-numeric allowed) \n” ;
print; quit;
}