aboutsummaryrefslogtreecommitdiffstats
path: root/miniscm (unfollow)
Commit message (Collapse)AuthorFilesLines
2024-09-22read: factor out ADD-ALL-AS-SKIP to UPDATE-LISTGravatar Peter McGoron 1-12/+50
2024-09-22read: datum commentsGravatar Peter McGoron 1-0/+9
2024-09-22read: block commentsGravatar Peter McGoron 1-2/+76
2024-09-22read: vectorsGravatar Peter McGoron 1-1/+37
2024-09-21read: factor out improper list readerGravatar Peter McGoron 1-27/+49
2024-09-20read: improper listsGravatar Peter McGoron 1-26/+40
2024-09-20readtable: add listsGravatar Peter McGoron 2-15/+88
2024-09-08miniscm: list->stringGravatar Peter McGoron 2-10/+45
2024-09-08miniscm: add better support for immutable strings, and refactor to use real ↵Gravatar Peter McGoron 3-49/+100
strings
2024-09-08miniscm: add string-refGravatar Peter McGoron 1-1/+26
2024-09-08readtable: handle EOF by returning EOF symbolGravatar Peter McGoron 1-1/+2
2024-09-08readtable: commentsGravatar Peter McGoron 1-11/+47
2024-09-08readtable: simplifyGravatar Peter McGoron 2-242/+134
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.
2024-09-07readtable: case foldingGravatar Peter McGoron 2-37/+62
2024-09-07readtable: when adding sequences to the readtable, push the lastGravatar Peter McGoron 1-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.
2024-09-07readtable: Normalize character handled by ACTIONs at the end ofGravatar Peter McGoron 1-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.
2024-09-07readtable: add documentation for PUSH->READGravatar Peter McGoron 1-0/+6
2024-09-07Readtable: fix propagation of default handlers in trie pathsGravatar Peter McGoron 1-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.
2024-09-07readtable: correctly add trie values. Incorrectly propogates default procedureGravatar Peter McGoron 1-17/+19
2024-09-07readtables, first passGravatar Peter McGoron 5-147/+321
2024-09-05change around insert, delete, and update to hide representationGravatar Peter McGoron 1-42/+37
2024-09-05fix set and trie, add compat COND-EXPAND for chezGravatar Peter McGoron 3-26/+223
2024-09-04trie: add with testGravatar Peter McGoron 5-3/+171
2024-09-04set:refactor mapsGravatar Peter McGoron 1-30/+29
2024-09-04set: add updateGravatar Peter McGoron 1-79/+150
2024-08-31set: add insert multiple testGravatar Peter McGoron 1-36/+110
2024-08-29add setsGravatar Peter McGoron 5-6/+436
2024-08-26miniscm: add mutable string emulation and char->integerGravatar Peter McGoron 3-3/+54
2024-08-22miniscm: add portsGravatar Peter McGoron 3-15/+189
2024-08-22minischeme: add charGravatar Peter McGoron 4-12/+79