aboutsummaryrefslogtreecommitdiffstats
path: root/read.scm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* object: renameGravatar Peter McGoron 2024-09-261-1/+1
|
* object: change to a stateful tableGravatar Peter McGoron 2024-09-261-1/+1
|
* add object helper functionsGravatar Peter McGoron 2024-09-241-68/+70
|
* read: add datum labels and UNCYCLE to cope with circular definitionsGravatar Peter McGoron 2024-09-221-12/+115
|
* read: factor out ADD-ALL-AS-SKIP to UPDATE-LISTGravatar Peter McGoron 2024-09-221-12/+50
|
* read: datum commentsGravatar Peter McGoron 2024-09-221-0/+9
|
* read: block commentsGravatar Peter McGoron 2024-09-221-2/+76
|
* read: vectorsGravatar Peter McGoron 2024-09-221-1/+37
|
* read: factor out improper list readerGravatar Peter McGoron 2024-09-211-27/+49
|
* read: improper listsGravatar Peter McGoron 2024-09-201-26/+40
|
* readtable: add listsGravatar Peter McGoron 2024-09-201-14/+87
|
* readtable: handle EOF by returning EOF symbolGravatar Peter McGoron 2024-09-081-1/+2
|
* readtable: commentsGravatar Peter McGoron 2024-09-081-11/+47
|
* readtable: simplifyGravatar Peter McGoron 2024-09-081-242/+119
| | | | | | | | | After taking a look at the R7RS syntax and how Chicken parses directives, I realized that it's easier to have "#!", "#\\", etc. parse identifiers instead of baking in trie actions. This is slightly slower but completely removes the trie concept from the readtable, which simplifies the implementation and removes many corner cases involving combining readtables with different action types.
* readtable: case foldingGravatar Peter McGoron 2024-09-071-31/+57
|
* readtable: when adding sequences to the readtable, push the lastGravatar Peter McGoron 2024-09-071-3/+16
| | | | | | | read character back to the character reader before executing the action. This fixes the issue where sequences eat characters in front of them.
* readtable: Normalize character handled by ACTIONs at the end ofGravatar Peter McGoron 2024-09-071-8/+15
| | | | | | | | | | | | 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.
* readtable: add documentation for PUSH->READGravatar Peter McGoron 2024-09-071-0/+6
|
* Readtable: fix propagation of default handlers in trie pathsGravatar Peter McGoron 2024-09-071-43/+56
| | | | | | | | | | | | | 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.
* readtable: correctly add trie values. Incorrectly propogates default procedureGravatar Peter McGoron 2024-09-071-17/+19
|
* readtables, first passGravatar Peter McGoron 2024-09-071-0/+300