Adds backslash as a build in constant

This commit is contained in:
Johan B.W. de Vries 2026-01-25 13:14:21 +01:00
parent 5369c15e05
commit 49e1bf204f
6 changed files with 14 additions and 0 deletions

View File

@ -409,6 +409,7 @@ def emitheader():
emitln(" if os.environ.get('TRACE'):") emitln(" if os.environ.get('TRACE'):")
emitln(" sys.stderr.write(f'{header}={value!r}\\n')") emitln(" sys.stderr.write(f'{header}={value!r}\\n')")
emitln("") emitln("")
emitln("__BACKSLASH = chr(0x5C)")
emitln("__EOF = chr(0xFF)") emitln("__EOF = chr(0xFF)")
emitln("__EOL = chr(10)") emitln("__EOL = chr(10)")
emitln("__QUOTE = chr(34)") emitln("__QUOTE = chr(34)")
@ -495,6 +496,7 @@ def main():
emitheader() emitheader()
# Standard library constants # Standard library constants
mapsetkey("REGISTERID", "backslash", "__BACKSLASH")
mapsetkey("REGISTERID", "eof", "__EOF") mapsetkey("REGISTERID", "eof", "__EOF")
mapsetkey("REGISTERID", "eol", "__EOL") mapsetkey("REGISTERID", "eol", "__EOL")
mapsetkey("REGISTERID", "quote", "__QUOTE") mapsetkey("REGISTERID", "quote", "__QUOTE")

View File

@ -472,6 +472,7 @@ emitheader:
emitln " if os.environ.get('TRACE'):" emitln " if os.environ.get('TRACE'):"
emitln " sys.stderr.write(f'{header}={value!r}\\n')" emitln " sys.stderr.write(f'{header}={value!r}\\n')"
emitln "" emitln ""
emitln "__BACKSLASH = chr(0x5C)"
emitln "__EOF = chr(0xFF)" emitln "__EOF = chr(0xFF)"
emitln "__EOL = chr(10)" emitln "__EOL = chr(10)"
emitln "__QUOTE = chr(34)" emitln "__QUOTE = chr(34)"
@ -557,6 +558,7 @@ emitfooter:
main: main:
emitheader emitheader
mapsetkey "REGISTERID" "backslash" "__BACKSLASH"
mapsetkey "REGISTERID" "eof" "__EOF" mapsetkey "REGISTERID" "eof" "__EOF"
mapsetkey "REGISTERID" "eol" "__EOL" mapsetkey "REGISTERID" "eol" "__EOL"
mapsetkey "REGISTERID" "quote" "__QUOTE" mapsetkey "REGISTERID" "quote" "__QUOTE"

View File

@ -574,6 +574,7 @@ emitheader:
emitln "#include <string.h>" emitln "#include <string.h>"
emitln "" emitln ""
emitln "" emitln ""
emitln "char __BACKSLASH[2] = {0x5C, 0};"
emitln "char __EOF[2] = {0xFF, 0};" emitln "char __EOF[2] = {0xFF, 0};"
emitln "char __EOL[2] = {10, 0};" emitln "char __EOL[2] = {10, 0};"
emitln "char __QUOTE[2] = {34, 0};" emitln "char __QUOTE[2] = {34, 0};"
@ -849,6 +850,7 @@ main:
emitheader emitheader
mapsetkey "REGISTERID" "backslash" "__BACKSLASH"
mapsetkey "REGISTERID" "eof" "__EOF" mapsetkey "REGISTERID" "eof" "__EOF"
mapsetkey "REGISTERID" "eol" "__EOL" mapsetkey "REGISTERID" "eol" "__EOL"
mapsetkey "REGISTERID" "quote" "__QUOTE" mapsetkey "REGISTERID" "quote" "__QUOTE"

View File

@ -123,6 +123,10 @@ Writes the name and value of the variable passed to stderr if the TRACE environm
### Standard library constants ### Standard library constants
#### backslash
Backslash character.
#### eof #### eof
End of file character, zero byte. End of file character, zero byte.

View File

@ -0,0 +1 @@
\

View File

@ -0,0 +1,3 @@
main:
emit backslash
/