4 Commits

Author SHA1 Message Date
amery 21c9755a43 build-sys: import build system from darvaza.org/core
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-29 15:22:09 +00:00
amery 6dee3412de Merge branch 'pr-amery-lexer' into next-amery 2023-08-29 15:21:21 +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 f7e13e0978 Merge pull request 'lexer: introduce Error{}' (#6)
Reviewed-on: #6
2023-08-29 17:00:09 +02:00
+8 -3
View File
@@ -7,11 +7,16 @@ type StateFn func() (StateFn, error)
// Run runs a state machine until the state function either
// returns nil or an error
func Run(fn StateFn) error {
var err error
for fn != nil {
var err error
for fn != nil && err == nil {
fn, err = fn()
if err != nil {
// failed
return err
}
}
return err
// ended
return nil
}