Commit Graph

78 Commits

Author SHA1 Message Date
Maurice Makaay 6a4a314fee Backup work. 2019-05-24 12:41:53 +00:00
Maurice Makaay 6af770a918 Compatibility with the latest parsekit module. 2019-05-23 00:02:53 +00:00
Maurice Makaay 234bbdf30f Compatibility with new atoms in parsekit. 2019-05-22 12:44:52 +00:00
Maurice Makaay 9a13e0dd7a Split off the parsekit code into a separate repository and Go module. 2019-05-21 15:25:06 +00:00
Maurice Makaay a3947feea7 Some changes to see how they reflect in godoc. 2019-05-21 13:23:30 +00:00
Maurice Makaay 9c0b889499 Adding a go file to the module root to make 'go get' happy. 2019-05-21 13:03:20 +00:00
Maurice Makaay 478efe3e25 Backup work. 2019-05-21 12:49:42 +00:00
Maurice Makaay d9d837fe6e Added a load of parser/combinator implementation, the system seems feasible! 2019-05-20 22:40:59 +00:00
Maurice Makaay 3677ab18cb Backup work on code cleanup now the parser/combinator code is stable. 2019-05-20 12:24:36 +00:00
Maurice Makaay 84ae34fb5f Just a bit of code formatting. 2019-05-19 23:44:11 +00:00
Maurice Makaay e3e408dfdb Phew, that was quite the update. I've now got a working implementation of a parser/combinator-like matching API, which prevents us from having to specify everything in state functions. That is way too low level for a lot of things. I'd rather have parser/combinator-style definitions for chunks of the input and keeping the state functions for higher level document structure parsing. 2019-05-19 23:35:03 +00:00
Maurice Makaay 55e23874f7 Hmm... even beter wording! Fully from the parser writer's perspective, hiding internals. 2019-05-18 13:21:56 +00:00
Maurice Makaay a569c430d5 More sensible state naming. No need to prefix every state function with state_. 2019-05-18 01:49:30 +00:00
Maurice Makaay e2e4fbd901 Slightly improved routing handling to prevent repeition in code for string parsing. 2019-05-18 01:28:27 +00:00
Maurice Makaay 4556520582 Added some more straightforwardness to the pattern magic coding. I can now write stuff like p.After(upper, upper, 4hex).Store() to store runes in the string buffer when the match is complete. Other options instead of Store() are for now Backup() (making it more of a peek) or Ignore() (skipping over the scanned text). I think this methodology forms a nice mental representation for the coder that uses the library. It's close to how we think about parsing (or at least I do) 2019-05-18 01:19:25 +00:00
Maurice Makaay 666cff3af3 Ahhhh found a name that clicked for the more general layer of the parser code: parsekit. That is short and tells me what it is. It's not a parser, but something to build parsers with. Now I could also name the actual parsing code as I would like to, namely 'toml/parser'. So it feels like the structure is settling down. 2019-05-17 22:03:10 +00:00
Maurice Makaay 3f638c59cd Some huge refactorings before I start moving forward again. Learned a lot about Go in the meanwhile, and more ideas keep popping up to improve what I've got so far even further. 2019-05-17 19:56:55 +00:00
Maurice Makaay 9f19add210 Now the parser code is out of the way, we can split up the state functions describing the syntax of TOML into separate files, while still keeping it maintainable. 2019-05-17 14:13:25 +00:00
Maurice Makaay db4a8f7942 Removed some source files that are not used anymore, after the refactoring steps. 2019-05-17 12:46:09 +00:00
Maurice Makaay f86ef2b918 Splitting off a more generic parser (it's fun getting to know a language, but you keep refactoring with all new stuff that you learn :-) 2019-05-17 12:44:24 +00:00
Maurice Makaay aeb48edc44 A little round of code cleanup. 2019-05-17 00:34:00 +00:00
Maurice Makaay 453a625a38 Fixed cursor position tracking (to report row + column on error). All tests are green again :-) 2019-05-17 00:11:12 +00:00
Maurice Makaay 29a13834dd Simplify, simplify, simplify, and make handling of invalid UTF8 or unexpected en of file more robust. 2019-05-16 23:26:43 +00:00
Maurice Makaay dc47ac3b71 Make short and long UTF8 escape sequences work in strings. 2019-05-16 16:17:23 +00:00
Maurice Makaay cbc4f04179 Code cleanup and refactoring run, both functional code and the tests. 2019-05-16 14:17:06 +00:00
Ubuntu 6636a7a672 Implemented a separated lexer.StringBuffer, to not pollute lexer code with string building code. The string builder can provide built strings both as literal as-is string (in TOML: single quotes), or as interpreted strings (in TOML: between double quotes) 2019-05-15 22:47:06 +00:00
Ubuntu 866a928f57 Backup work. 2019-05-15 11:08:14 +00:00
Ubuntu f6efd34b31 Initial import, work in progress. 2019-05-15 09:00:35 +00:00