aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* read: bytevectorsGravatar Peter McGoron 2024-09-271-1/+11
|
* read: hash constants and directivesGravatar Peter McGoron 2024-09-272-13/+38
|
* read: properly restore state when reading datum commentsGravatar Peter McGoron 2024-09-271-8/+20
|
* read: document datum labelGravatar Peter McGoron 2024-09-271-0/+8
|
* read: change datum label to object, that returns an encapsulated datum labelGravatar Peter McGoron 2024-09-271-33/+47
|
* read: add object encapsulating identifierGravatar Peter McGoron 2024-09-273-24/+49
|
* Revert "add object helper functions"Gravatar Peter McGoron 2024-09-273-159/+129
| | | | This reverts commit 0d5f4545d0d3db7c9ec63cac005bb71b85fe6b23.
* Revert "object: change to a stateful table"Gravatar Peter McGoron 2024-09-274-95/+42
| | | | This reverts commit 3c34c4a5a7253df4417420bf276a78f8e9e1969b.
* Revert "object: rename"Gravatar Peter McGoron 2024-09-273-12/+8
| | | | | | | | This makes things much slower for questionable benefit. A better version might use a hash table. A better interpreter would use some form of partial evaluation to optimize the EQ? chain. This reverts commit 4acea69841ad62ec5d46eb565bbb5d98f84b3d38.
* object: renameGravatar Peter McGoron 2024-09-263-8/+12
|
* object: change to a stateful tableGravatar Peter McGoron 2024-09-264-42/+95
|
* add object helper functionsGravatar Peter McGoron 2024-09-243-129/+159
|
* miniscm: string->symbol and symbol->stringGravatar Peter McGoron 2024-09-221-1/+17
|
* add linked list libraryGravatar Peter McGoron 2024-09-221-0/+82
|
* 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-202-15/+88
|
* miniscm: list->stringGravatar Peter McGoron 2024-09-082-10/+45
|
* miniscm: add better support for immutable strings, and refactor to use real ↵Gravatar Peter McGoron 2024-09-083-49/+100
| | | | strings
* miniscm: add string-refGravatar Peter McGoron 2024-09-081-1/+26
|
* 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-082-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.
* readtable: case foldingGravatar Peter McGoron 2024-09-072-37/+62
|
* 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-075-147/+321
|
* change around insert, delete, and update to hide representationGravatar Peter McGoron 2024-09-051-42/+37
|
* fix set and trie, add compat COND-EXPAND for chezGravatar Peter McGoron 2024-09-053-26/+223
|
* trie: add with testGravatar Peter McGoron 2024-09-045-3/+171
|
* set:refactor mapsGravatar Peter McGoron 2024-09-041-30/+29
|
* set: add updateGravatar Peter McGoron 2024-09-041-79/+150
|
* set: add insert multiple testGravatar Peter McGoron 2024-08-311-36/+110
|
* add setsGravatar Peter McGoron 2024-08-295-6/+436
|
* miniscm: add mutable string emulation and char->integerGravatar Peter McGoron 2024-08-263-3/+54
|
* miniscm: add portsGravatar Peter McGoron 2024-08-223-15/+189
|
* minischeme: add charGravatar Peter McGoron 2024-08-224-12/+79
|
* add doubly linked lists, tests, minischemeGravatar Peter McGoron 2024-08-227-0/+3616