Commit Graph

7 Commits

Author SHA1 Message Date
Peter McGoron 6945841d1c readtable: case folding 2024-09-07 21:10:40 -04:00
Peter McGoron 3f56b03f1a readtable: when adding sequences to the readtable, push the last
read character back to the character reader before executing the
action.

This fixes the issue where sequences eat characters in front of them.
2024-09-07 19:41:22 -04:00
Peter McGoron 530dd18087 readtable: Normalize character handled by ACTIONs at the end of
sequences.

Previously, if "#true" and "#t" were in the readtable as sequences,
the string "#true" would call "#true"'s EXEC function after reading
"e", but it would call "#t"'s EXEC function after reading a
character after "t" (which could be EOF).

The new behavior normalizes everything so that the ACTIONs read the
character after the sequence.
2024-09-07 19:14:09 -04:00
Peter McGoron 42cd5a0678 readtable: add documentation for PUSH->READ 2024-09-07 18:44:18 -04:00
Peter McGoron 4d40be38d0 Readtable: fix propagation of default handlers in trie paths
Previous version did (ACTION 'UPDATE (CDR REST) ACTION) when a new
action had to be made. This caused default actions to propagate
through the trie.

While this isn't bad (it causes #TRU to be equal to #TRUE when that
was the last prefix in the tree), it can cause unexpected errors at
runtime, and no program should ever depend on its behavior.

The current solution is to make a new PASS readtable with a default
error action.
2024-09-07 18:37:17 -04:00
Peter McGoron 40b129b0db readtable: correctly add trie values. Incorrectly propogates default procedure 2024-09-07 17:58:18 -04:00
Peter McGoron 53a174f8e2 readtables, first pass 2024-09-07 17:47:10 -04:00