Maurice Makaay
|
41f8733e99
|
Pfff, okay, so today I found a rather nice way of writing a parser that can hold some internal state, while stell holding on to the basic principle of having a function signature the applies to every parse handler in the system. By using methods instead of stand-alone functions, it is possible to let the accompanying struct hold on to the required state. Implemented this principle for the two calculator example projects. The rest is quite broken now, sorry :-p
|
2019-05-27 23:24:07 +00:00 |
Maurice Makaay
|
f7d1e28fa1
|
Dropped the whole channel support for the parser internals. It seems a nice idea to work with, but it's hard to predict how much buffering the channel should have to make all parsers work. When the buffer is too small, then a StateHandler that emits more items than can be buffered will end up in a deadlock and stall the application. It is easy enough to replace the channel with a slice of Items, so I did.
|
2019-05-26 11:32:45 +00:00 |
Maurice Makaay
|
d0d12dae22
|
Added a new example, yet another hello world.
|
2019-05-26 10:15:34 +00:00 |
Maurice Makaay
|
c6fde2cf4e
|
A big round of getting-ya-terminology-straight.
|
2019-05-26 09:25:34 +00:00 |
Maurice Makaay
|
2751c78003
|
Got rid of the full On()...etc chains for both code clarity and usability clarity. Working on good examples and shaving the API's accordingly.
|
2019-05-25 22:53:04 +00:00 |
Maurice Makaay
|
b0cd017b83
|
Removed old file.
|
2019-05-25 15:22:06 +00:00 |
Maurice Makaay
|
bb1e462892
|
Ah, found a good way to document larger examples which need function definitions and such. Let's see if this works in godoc nicely.
|
2019-05-25 14:37:38 +00:00 |
Maurice Makaay
|
8a6815332e
|
Example extended.
|
2019-05-24 23:55:10 +00:00 |
Maurice Makaay
|
e9c618580d
|
Example extended.
|
2019-05-24 23:53:04 +00:00 |
Maurice Makaay
|
723e2a0c38
|
Added complete example for a parser.
|
2019-05-24 23:41:47 +00:00 |
Maurice Makaay
|
070a215ac3
|
More documentation example testing.
|
2019-05-24 21:34:54 +00:00 |
Maurice Makaay
|
3e87e010fb
|
Banged some sense into the constructors. Instead of one convulated parsekit.New(), we now have parsekit.NewParser() and parsekit.NewMatcherWrapper(). ALso playing with adding examples to the documentation.
|
2019-05-24 20:50:31 +00:00 |
Maurice Makaay
|
6fe3c16a6d
|
Added some more modifiers (ModifyReplace and ModifyByCallback).
|
2019-05-24 15:57:54 +00:00 |
Maurice Makaay
|
c164f320cb
|
Implemented P.ExpectEndOfFile() and shortened some parser/combinator functions (since Go-people seem to like that better than a somewhat longer descriptive name)
|
2019-05-24 13:59:01 +00:00 |
Maurice Makaay
|
6ad4499971
|
Backup work, created a lot of tests for parser combinators and atoms. Pretty solid now!
|
2019-05-24 12:41:34 +00:00 |
Maurice Makaay
|
d9ab7298e7
|
Cleanup of test code structure. Added support for creating parsers for either StateHandler or Matcher functions.
|
2019-05-23 00:04:10 +00:00 |
Maurice Makaay
|
8a09b7ca49
|
Implemented a lot of atoms in the parsekit library, ready for use by a parser implementation.
|
2019-05-22 12:44:29 +00:00 |
Maurice Makaay
|
355f995388
|
Switched to using a function signature for all matchers, instead of an interface. There's no need for all those structs with methods. Also some little things to see if that improves documentation.
|
2019-05-21 23:24:01 +00:00 |
Maurice Makaay
|
7474565179
|
Trying to fix module paths (I have no idea what I'm doing :-) The idea is to make parsekit into a separate module in another repo.
|
2019-05-21 15:05:37 +00:00 |
Maurice Makaay
|
eca2adc9fa
|
Initial import of the parsekit module.
|
2019-05-21 14:49:44 +00:00 |
Maurice Makaay
|
e1ff03587c
|
Initial commit
|
2019-05-21 14:45:32 +00:00 |