mirror of
https://github.com/hymkor/lispect.git
synced 2026-09-03 15:47:51 -04:00
Implement $MATCH
This commit is contained in:
@@ -14,6 +14,7 @@ import (
|
|||||||
var (
|
var (
|
||||||
symTimeout = gmnlisp.NewSymbol("timeout")
|
symTimeout = gmnlisp.NewSymbol("timeout")
|
||||||
symInterval = gmnlisp.NewSymbol("interval")
|
symInterval = gmnlisp.NewSymbol("interval")
|
||||||
|
symMatch = gmnlisp.NewSymbol("$MATCH")
|
||||||
)
|
)
|
||||||
|
|
||||||
var ErrCtrlC = errors.New("^C")
|
var ErrCtrlC = errors.New("^C")
|
||||||
@@ -173,7 +174,8 @@ func (g *Global) expectX(ctx context.Context, w *gmnlisp.World, node gmnlisp.Nod
|
|||||||
if result == EventCtrlC {
|
if result == EventCtrlC {
|
||||||
return nil, ErrCtrlC
|
return nil, ErrCtrlC
|
||||||
} else if result >= 0 {
|
} else if result >= 0 {
|
||||||
return gmnlisp.Progn(ctx, w, actions[result])
|
_w := w.Let(&gmnlisp.Pair{Key: symMatch, Value: gmnlisp.String(patterns[result])})
|
||||||
|
return gmnlisp.Progn(ctx, _w, actions[result])
|
||||||
} else {
|
} else {
|
||||||
return gmnlisp.Progn(ctx, w, timeoutAct)
|
return gmnlisp.Progn(ctx, w, timeoutAct)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user