Commit Graph

18 Commits

Author SHA1 Message Date
amery 5f816300f6 Merge pull request 'lexer: introduce Position.Add()' (#13)
Reviewed-on: #13
2023-09-04 15:18:27 +02:00
amery ce75299e74 lexer: add Hint to Error, which is expanded as "%s" instead of "%q"
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-03 16:34:56 +00:00
amery 1d7ee69ab7 lexer: refactor Error.Error()'s prefix generator
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-03 16:34:56 +00:00
amery ec0fc8e508 lexer: introduce Position.Add()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-03 16:32:47 +00:00
amery 2ab838ea78 lexer: introduce NewIsInRunes() shortcut for NewIsIn()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-31 14:28:57 +00:00
amery 3bd2c58fc3 Merge pull request 'lexer: constants and helpers' (#9)
Reviewed-on: #9
2023-08-30 19:44:26 +02:00
amery f8f6ff9e11 Merge pull request 'lexer: Reader.Accept(), AcceptAll(), and StateFn' (#5)
Reviewed-on: #5
2023-08-30 19:02:15 +02:00
amery 05d504346e lexer: extend Run() to treat io.EOF as non-error termination
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-30 01:50:12 +01:00
amery eb9261b478 lexer: NewIsNot(), NewIsIn(), NewIsOneOf()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-29 23:30:51 +00:00
amery 0098052142 lexer: IsSpace()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-29 23:30:47 +00:00
amery a02326a0a6 lexer: ErrUnacceptableRune and ErrNotImplemented
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-29 23:30:44 +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