diff options
| author | mryouse | 2022-07-20 20:58:01 +0000 |
|---|---|---|
| committer | mryouse | 2022-07-20 20:58:01 +0000 |
| commit | 21e39d6c9090f71e4be688d0cd73819e97e7c5e7 (patch) | |
| tree | 8da0b1a28244f62630840503cd39587105f782f3 | |
| parent | f736b930ac4ac69ae7c2933317c6d6a197378f0b (diff) | |
implement multifunc for term
| -rw-r--r-- | neb/std/term.py | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/neb/std/term.py b/neb/std/term.py index e028b00..3c82bcf 100644 --- a/neb/std/term.py +++ b/neb/std/term.py @@ -1,4 +1,4 @@ -from .. import TypeEnum, Environment, Arg, Builtin, evaluate, InterpretPanic +from .. import TypeEnum, Environment, Arg, Builtin, evaluate, InterpretPanic, MultiFunction from ..structs import * import subprocess import sys @@ -9,13 +9,19 @@ def interpretClear(symbol, args, env, ns): subprocess.run(["clear"]) return List([]) -TERM.register("clear", Builtin("clear", interpretClear, [], return_type=Type(":list"))) +clear_func = Builtin("clear", interpretClear, [], return_type=Type(":list")) +clear_multi = MultiFunction("clear") +clear_multi.register(clear_func) +TERM.register("clear", clear_multi) def interpretReadLine(symbol, args, env, ns): ret = input(args[0].value) return String(ret) -TERM.register("read-line", Builtin("read-line", interpretReadLine, [Arg("prompt", TypeEnum.STRING)], return_type=Type(":string"))) +readline_func = Builtin("read-line", interpretReadLine, [Arg("prompt", TypeEnum.STRING)], return_type=Type(":string")) +readline_multi = MultiFunction("read-line") +readline_multi.register(readline_func) +TERM.register("read-line", readline_multi) def interpretReadChar(symbol, args, env, ns): import termios, tty @@ -30,4 +36,7 @@ def interpretReadChar(symbol, args, env, ns): termios.tcsetattr(fd, termios.TCSADRAIN, old) return String(ch.decode("utf-8")) -TERM.register("read-char", Builtin("read-char", interpretReadChar, [], return_type=Type(":string"))) +readchar_func = Builtin("read-char", interpretReadChar, [], return_type=Type(":string")) +readchar_multi = MultiFunction("read-char") +readchar_multi.register(readchar_func) +TERM.register("read-char", readchar_multi) |
