summaryrefslogtreecommitdiff
path: root/src/config/PARSING-preprocess.txt
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2023-08-05 11:51:25 +0000
committerLaurent Bercot <ska@appnovation.com>2023-08-05 11:51:25 +0000
commit17c382d1c9d7236c101418060758d2296cc5e17e (patch)
treefd00e58df0d9d3c70ddd1accfec9e819249c672a /src/config/PARSING-preprocess.txt
downloadtipidee-17c382d1c9d7236c101418060758d2296cc5e17e.tar.xz
Initial commit
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/config/PARSING-preprocess.txt')
-rw-r--r--src/config/PARSING-preprocess.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/config/PARSING-preprocess.txt b/src/config/PARSING-preprocess.txt
new file mode 100644
index 0000000..e81c86e
--- /dev/null
+++ b/src/config/PARSING-preprocess.txt
@@ -0,0 +1,38 @@
+
+ Automaton for the preprocessor:
+
+
+class | 0 1 2 3 4
+st\ev | \0 \n ! space other
+
+START | print print print
+0 | END START CMD NORMAL NORMAL
+
+NORMAL | print print print print
+1 | END START NORMAL NORMAL NORMAL
+
+CMD | add
+2 | END START IGNORE CMD1 CMD2
+
+IGNORE |
+3 | END START IGNORE IGNORE IGNORE
+
+CMD1 | add
+4 | X X X CMD1 CMD2
+
+CMD2 | idcmd add
+5 | X X X ARG CMD2
+
+ARG | add
+6 | X X ARG1 ARG ARG1
+
+ARG1 | proc proc add add add
+7 | END START ARG1 ARG1 ARG1
+
+states: 0-7 plus END and X -> 4 bits
+actions: 4. -> 8 bits total, fits in a char.
+
+print 0x10 copies the character to stdout
+add 0x20 adds the character to the processing string
+idcmd 0x40 ids the processing string for an !include cmd
+proc 0x80 gets the filename and procs the include