amery
|
7dc14d5b5e
|
lexer: IsNot(), IsIn(), IsOneOf()
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 23:06:38 +00:00 |
|
amery
|
e308b8e284
|
lexer: IsSpace()
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 20:18:15 +00:00 |
|
amery
|
0c37c9eead
|
lexer: introduce Position.Next()/Position.NextLine() factories
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 20:18:04 +00:00 |
|
amery
|
03684b19dc
|
lexer: ErrUnacceptableRune
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 20:18:04 +00:00 |
|
amery
|
1247683981
|
Merge branch 'pr-amery-lexer' into next-amery
|
2023-08-29 20:17:11 +00:00 |
|
amery
|
9425ba0f7c
|
lexer: introduce a Position (Line, Column) handler
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 16:22:59 +00:00 |
|
amery
|
1d62857e14
|
lexer: introduce StateFn and the basic state machine loop
v2: make the error break more explicit
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 15:11:51 +00:00 |
|
amery
|
f67d8a2443
|
lexer: introduce Error{}
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 13:54:23 +00:00 |
|
amery
|
d83b128c30
|
lexer: introduce Reader.Accept()/AcceptAll()
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 13:26:49 +00:00 |
|
amery
|
6cca2996ca
|
lexer: Implement Reader.UnreadRune() and Reader.PeekRune()
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 02:00:43 +00:00 |
|
amery
|
edcba80baa
|
lexer: fix ReadRune() to actually move the cursor
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 02:00:38 +00:00 |
|
amery
|
7230a74f49
|
lexer: runes.Reader renamed to lexer.Reader
Signed-off-by: Alejandro Mery <amery@jpi.io>
|
2023-08-29 01:59:09 +00:00 |
|