<- Back to shtanton's homepage
aboutsummaryrefslogtreecommitdiff
path: root/walk
Commit message (Collapse)AuthorAgeFilesLines
* Adds the json_array IO formatCharlie Stanton2023-05-121-0/+12
|
* Move reading and writing of tokens into a separate package to prepare for ↵Charlie Stanton2023-05-123-621/+20
| | | | other input and output formats
* Slightly improve code quality of JSONIn.ReadCharlie Stanton2023-04-261-2/+1
|
* Refactor out from JSONIn.Read the code that pops the first value from the ↵Charlie Stanton2023-04-261-41/+28
| | | | readBuffer
* Update fillReadBuffer to use an empty structure as the root structure ↵Charlie Stanton2023-04-261-9/+10
| | | | instead of a dedicated JSONInRoot structure
* Improve the way state is tracked in fillReadBufferCharlie Stanton2023-04-261-74/+103
|
* Fix minor bug with a few cases where fillReadBuffer was returning the wrong ↵Charlie Stanton2023-04-261-2/+2
| | | | structure
* Replace readString in walk/read.go with a faster implementation that makes ↵Charlie Stanton2023-04-251-90/+100
| | | | better use of the buffer system
* Completely rewrites the JSON parser to make more extensive use of slices and ↵Charlie Stanton2023-04-251-136/+316
| | | | decrease the number mallocs
* Separates JSON parsing code into its own fileCharlie Stanton2023-04-252-278/+285
|
* Refactor Atom and Value code out of walk.go and into separate filesCharlie Stanton2023-04-253-174/+185
|
* Make state.path immutable so it can be a reference instead of copied, ↵Charlie Stanton2023-04-251-11/+0
| | | | improving performance
* Now uses a buffered output for writing to improve performanceCharlie Stanton2023-04-251-19/+22
|
* Improves performance of reading JSON stringsCharlie Stanton2023-04-241-42/+39
|
* WalkItems are now made of Atoms instead of WalkValues, and I have rolled my ↵Charlie Stanton2023-04-241-246/+379
| | | | | | own JSON parser and serialiser These changes improve performance
* Replaces the interfaces implementation of Atom with a tagged union based ↵Charlie Stanton2023-04-211-35/+115
| | | | implementation
* Replace implementation of Atomise to improve performanceCharlie Stanton2023-04-211-16/+29
|
* Improves performance by being more explicit about memory allocation in walk.goCharlie Stanton2023-04-211-29/+32
|
* Changes the implementation of Atomise and Compound to no longer use goroutinesCharlie Stanton2023-04-211-104/+63
| | | | This results in a massive performance boost, ~4x speedup
* Replaces the start and end terminals of strings with a single terminal, with ↵Charlie Stanton2023-04-201-15/+6
| | | | " as a literal for it
* Adds casting all other types to strings by simply putting them in a stringCharlie Stanton2023-04-191-0/+8
|
* Replaces the workspace with 3 distinct registers: path, value and xregCharlie Stanton2023-04-191-0/+31
| | | | | | workspace contained a list of WalkItems, pairs of paths and values. The new system can still hold a list of values but only one path, which is in itself a list of values. The X register is miscellaneous. All 3 hold a list of values (which are JSON tokens)
* Adds a dummy method to atom so the compiler checks that only valid atoms are ↵Charlie Stanton2023-04-191-5/+21
| | | | allowed
* Adds casting strings to numbers in the sum operatorCharlie Stanton2023-04-191-18/+73
|
* Creates functions for compounding atoms back into values in the walk module ↵Charlie Stanton2023-04-181-0/+79
| | | | and uses them in subex/main
* Fixes strings being wrapped in quotes twice when outputtingCharlie Stanton2023-03-151-2/+2
|
* Renames walk.Datum to walk.AtomCharlie Stanton2023-03-051-9/+9
|
* Replace append with walk.ConcatData in many places to fix bug to do with ↵Charlie Stanton2023-02-261-0/+4
| | | | | | semantics of append When doing append, be very careful as it does make changes in place to the underlying array of the slice which may affect other slices
* Converts subex output back into WalkValues and prints for easier debuggingCharlie Stanton2023-02-261-0/+32
|
* Modify subex to take JSON split into "data"Charlie Stanton2023-02-221-2/+29
| | | | | | Currently no way to reassemble the data on the other side Much of the potential data cannot be interacted with meaningfully, only the string functionality is implemented Should rename data to something else
* Move JSON serialising, deserialising and walking code into a separate packageCharlie Stanton2023-02-191-0/+316