mirror of
https://github.com/hymkor/lispect.git
synced 2026-10-26 21:49:56 -04:00
Implement $MATCH
This commit is contained in:
1 parent
5ec19acc0e
commit
b9c34297a9
1 file changed
+3
-1
@@ -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