Commit Graph

12 Commits

Author SHA1 Message Date
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