Commit Graph

  • 22144487f0 String parser replaced with a low level parser for performance. main Maurice Makaay 2019-08-01 13:25:21 +0000
  • ed846c7e53 Wrote a first crude version of specific tokenizer handlers for string parsing. Missing feature is good error reporting from the tokenize handler code (which has been a TODO for a while, so a nice one to implement after this). Maurice Makaay 2019-07-31 07:51:37 +0000
  • 5ff6f20ab7 Speed improvements Maurice Makaay 2019-07-29 23:51:03 +0000
  • 74274e04fb Made a big jump in performance on big files with lots of comments, by reading in chunks till end of line, instead of byte-by-byte. Maurice Makaay 2019-07-28 23:50:30 +0000
  • 44f022544f Restructured the BurntSushi testing code, to not let it be a part of the TOML AST. Maurice Makaay 2019-07-28 14:51:14 +0000
  • dea3eb987b Changes for compatibliity with latest parsekit, and some speed improvements. Maurice Makaay 2019-07-26 22:56:24 +0000
  • bf7b693cb8 Lowering the number of forks required. Maurice Makaay 2019-07-24 22:42:54 +0000
  • 68ab1293f2 Code cleanup. Maurice Makaay 2019-07-23 20:09:30 +0000
  • 5ccb16f38f Backup work. Maurice Makaay 2019-07-22 23:27:59 +0000
  • 5815a93a01 Small compatibility fix. Maurice Makaay 2019-07-20 17:41:59 +0000
  • 35e4c9411c Fixed a small issue in the Makefile to "make test-sushi" work again. Maurice Makaay 2019-07-20 00:29:38 +0000
  • c396e52632 A few new bits and bobs for performance testing. Maurice Makaay 2019-07-19 21:12:06 +0000
  • 96a72c4c48 Various small updates, related to speed improvements. Maurice Makaay 2019-07-18 00:23:14 +0000
  • c37404875d Some changes due to the performance improvements in parsekit. Maurice Makaay 2019-07-16 06:22:29 +0000
  • 2fb6a5fd34 Further performance optimization and code cleanup. Maurice Makaay 2019-07-12 21:32:32 +0000
  • b8d99972bb Made it easier to do some profiling on the code. Maurice Makaay 2019-07-12 12:33:53 +0000
  • a9964163c1 Squishing out more performance. Maurice Makaay 2019-07-12 00:20:52 +0000
  • 83be756015 Cleaning up the grammar-based TOML-parser now the core is stable again. Maurice Makaay 2019-07-11 14:50:42 +0000
  • be5f3b6f55 Optimization round completed (for now :-) All tests successful. Maurice Makaay 2019-07-11 12:43:27 +0000
  • 30a0d80d84 Backup work on performance improvements. Maurice Makaay 2019-07-08 14:30:39 +0000
  • 1d65cfdd7b Backup changes for performance fixes. Maurice Makaay 2019-07-08 00:12:00 +0000
  • 68dbf2d78e Backup changes for performance fixes. Maurice Makaay 2019-07-05 15:06:57 +0000
  • c97a21b146 Backup work to performance tuning. Maurice Makaay 2019-07-05 08:08:33 +0000
  • af5d35ecee Cleaning up some logic around whitespace / newlines / comments. Maurice Makaay 2019-07-04 11:31:28 +0000
  • 019dd35d83 Backup insane idea. Maurice Makaay 2019-07-03 15:46:23 +0000
  • c67a91b1ca Ignore build output, removed some profiling code. Maurice Makaay 2019-06-30 10:15:39 +0000
  • a28269800a Make use of the new feature to run without sanity check on the parser, to make the big testfiles-based test suite faster. Maurice Makaay 2019-06-30 01:07:13 +0000
  • 9680c2b844 Implemented TOML arrays as a linked list, which prevents a lot of memory copying on large arrays. Also implemented a json comparison, inspired by BurnSushi's version, which makes the tests work when keys in JSON maps are not in the expected order. Maurice Makaay 2019-06-29 23:11:03 +0000
  • 7227fdcb93 Integrated multiple file-based test suites (BurntSushi, iarna and my own) into the unit tests. BurntSushi's tests are also still supported using the test interface implementation from cmd/burntsushi-tester. Maurice Makaay 2019-06-29 15:45:52 +0000
  • ec3a47da8d Composition over inheritance, why didn't I do that in the first place I wonder. Maurice Makaay 2019-06-28 08:34:35 +0000
  • febe1ff568 Bits of code cleanup, no functional changes. Maurice Makaay 2019-06-28 08:23:43 +0000
  • b1484cb690 Slight improvement for the document-level error in case no key or table was found. Maurice Makaay 2019-06-27 22:54:54 +0000
  • 5782971bde 100% compatibility with the BurntSushi tests established. Maurice Makaay 2019-06-27 22:43:17 +0000
  • 0d4cb356e9 Straightening out a few small wrinkles that came up from testing against the BurntSushi testset. Maurice Makaay 2019-06-27 22:01:56 +0000
  • 13d0011d9d Oops, committed some build output and test files. Maurice Makaay 2019-06-27 13:59:40 +0000
  • 6b9a7adfd9 Added support for the BurntSushi TOML tests. Maurice Makaay 2019-06-27 13:58:13 +0000
  • 63cbe18d03 Backup work, before switching from module development setup to standard GOPATH workspace setup (some tooling simply is not yet working with it, and I mainly miss refactoring a lot) Maurice Makaay 2019-06-27 07:36:24 +0000
  • b95f255ae7 Moved all parser code into subpackage 'parse'. Maurice Makaay 2019-06-26 21:51:42 +0000
  • 54cb75955d Went over the full TOML AST implementation to give stuff good names. Also pushed all tests to ast_test to make sure that the public interface is sufficient for using the package Maurice Makaay 2019-06-26 15:38:32 +0000
  • 688894dbf2 Extracted the toml AST to its own subpackage. Preparation for having encoder and decoder as well, not all inside the main toml dir. Maurice Makaay 2019-06-26 13:57:22 +0000
  • da62fc078e Removed .vscode folder from repo. Maurice Makaay 2019-06-26 12:55:30 +0000
  • fd9365b842 Implemented inline tables + tests. Maurice Makaay 2019-06-26 12:54:04 +0000
  • 97153fc806 Brought test coverage too 100%. Maurice Makaay 2019-06-26 07:18:42 +0000
  • 608e68c207 Cleaning up test code. Maurice Makaay 2019-06-26 06:39:41 +0000
  • c536dd1243 Huge overhaul in AST handling. The AST is now fully integrated with the parser, which has been simplified quite a bit because of this. Maurice Makaay 2019-06-25 21:29:05 +0000
  • 15560b29b0 Added a good string formatter for the AST, to making testing more straight forward. Maurice Makaay 2019-06-24 07:05:38 +0000
  • 8838dc9c44 Backup work. Maurice Makaay 2019-06-23 12:05:52 +0000
  • 726b5a377b A bit of code cleanup, to let the date/time code better represent the ideas behind the followed methodology. Maurice Makaay 2019-06-19 11:28:03 +0000
  • 45245e05b6 Some small cleanup, committing before I continue with inline lists. Maurice Makaay 2019-06-19 11:09:26 +0000
  • c405260ea6 All base value types for TOML implemented (added date/time types and implemented correct detection of the possible value types). All examples from the TOML specification key/value assignments have been added to the unit tests. All are gree :-) Maurice Makaay 2019-06-19 10:42:51 +0000
  • fd66f63588 And stil... it can be cleaner and simpler. Maurice Makaay 2019-06-18 23:26:15 +0000
  • 1c8f5ffe7e Added booleans ...that was boring. Maurice Makaay 2019-06-18 23:24:23 +0000
  • c29afaeacc Nope, NOW I'm done with the number types. On reading the docs, I noticed that I missed an implementation for floats 'nan' and 'inf'. All taken care of now! Maurice Makaay 2019-06-18 23:13:59 +0000
  • 278efd7dbe Implemented all number formats for TOML. Maurice Makaay 2019-06-18 22:52:45 +0000
  • e8739d38ea Implemented the TOML number formats (integer, binary, octal, hexadecimal. Maurice Makaay 2019-06-18 15:45:33 +0000
  • 51a093efc5 Added some docs from the TOML specs to the code for easy reference. Maurice Makaay 2019-06-17 23:44:32 +0000
  • e1ef9df7ca Implemented all string types and key types Maurice Makaay 2019-06-17 23:25:39 +0000
  • b49715652e Brought the TOML code up-to-speed with the latest version of parsekit. Maurice Makaay 2019-06-17 13:59:59 +0000
  • 269bd9ed36 Compatbility with parsekit v0.0.2 Maurice Makaay 2019-05-26 09:26:17 +0000
  • 9ab468a3ba Compatiblity with the latest parsekit version. Maurice Makaay 2019-05-25 22:53:37 +0000
  • 0ac419fb9e Compatibility with latest parsekit. Maurice Makaay 2019-05-24 20:50:51 +0000
  • 3cc6fed3df Commit to get compatibility with the latest parsekit. Maurice Makaay 2019-05-24 16:01:35 +0000
  • 3e0c9136c3 Moved EOF handling into parsekit and updates for code-compatiblity with latest parsekit version. Maurice Makaay 2019-05-24 13:58:00 +0000
  • 6a4a314fee Backup work. Maurice Makaay 2019-05-24 12:41:53 +0000
  • 6af770a918 Compatibility with the latest parsekit module. Maurice Makaay 2019-05-23 00:02:53 +0000
  • 234bbdf30f Compatibility with new atoms in parsekit. Maurice Makaay 2019-05-22 12:44:52 +0000
  • 9a13e0dd7a Split off the parsekit code into a separate repository and Go module. Maurice Makaay 2019-05-21 15:25:06 +0000
  • a3947feea7 Some changes to see how they reflect in godoc. Maurice Makaay 2019-05-21 13:23:30 +0000
  • 9c0b889499 Adding a go file to the module root to make 'go get' happy. Maurice Makaay 2019-05-21 13:03:20 +0000
  • 478efe3e25 Backup work. Maurice Makaay 2019-05-21 12:49:42 +0000
  • d9d837fe6e Added a load of parser/combinator implementation, the system seems feasible! Maurice Makaay 2019-05-20 22:40:59 +0000
  • 3677ab18cb Backup work on code cleanup now the parser/combinator code is stable. Maurice Makaay 2019-05-20 12:24:36 +0000
  • 84ae34fb5f Just a bit of code formatting. Maurice Makaay 2019-05-19 23:44:11 +0000
  • 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. Maurice Makaay 2019-05-19 23:35:03 +0000
  • 55e23874f7 Hmm... even beter wording! Fully from the parser writer's perspective, hiding internals. Maurice Makaay 2019-05-18 13:21:56 +0000
  • a569c430d5 More sensible state naming. No need to prefix every state function with state_. Maurice Makaay 2019-05-18 01:49:30 +0000
  • e2e4fbd901 Slightly improved routing handling to prevent repeition in code for string parsing. Maurice Makaay 2019-05-18 01:28:27 +0000
  • 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) Maurice Makaay 2019-05-18 01:19:25 +0000
  • 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. Maurice Makaay 2019-05-17 22:03:10 +0000
  • 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. Maurice Makaay 2019-05-17 19:56:55 +0000
  • 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. Maurice Makaay 2019-05-17 14:13:25 +0000
  • db4a8f7942 Removed some source files that are not used anymore, after the refactoring steps. Maurice Makaay 2019-05-17 12:46:09 +0000
  • 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 :-) Maurice Makaay 2019-05-17 12:44:24 +0000
  • aeb48edc44 A little round of code cleanup. Maurice Makaay 2019-05-17 00:34:00 +0000
  • 453a625a38 Fixed cursor position tracking (to report row + column on error). All tests are green again :-) Maurice Makaay 2019-05-17 00:11:12 +0000
  • 29a13834dd Simplify, simplify, simplify, and make handling of invalid UTF8 or unexpected en of file more robust. Maurice Makaay 2019-05-16 23:26:43 +0000
  • dc47ac3b71 Make short and long UTF8 escape sequences work in strings. Maurice Makaay 2019-05-16 16:17:23 +0000
  • cbc4f04179 Code cleanup and refactoring run, both functional code and the tests. Maurice Makaay 2019-05-16 14:17:06 +0000
  • 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) Ubuntu 2019-05-15 22:47:06 +0000
  • 866a928f57 Backup work. Ubuntu 2019-05-15 11:08:14 +0000
  • f6efd34b31 Initial import, work in progress. Ubuntu 2019-05-15 09:00:35 +0000