From 0a84458434063327f1d0a27eef4b9d410f151b6e Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 6 Nov 2015 23:16:33 +0100 Subject: Add ivy --- ivy.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 ivy.go diff --git a/ivy.go b/ivy.go new file mode 100644 index 0000000..dc27a92 --- /dev/null +++ b/ivy.go @@ -0,0 +1,35 @@ +package main + +import ( + "strings" + + irc "github.com/fluffle/goirc/client" + ivy "robpike.io/ivy/mobile" +) + +type Ivy struct { + Command +} + +func (_ Ivy) WithArgs(_ int) bool { return true } + +func (_ Ivy) Handle(conn *irc.Conn, line *irc.Line) { + switch q := strings.SplitN(line.Text(), " ", 2); len(q) { + case 1: + ivy.Reset() + case 2: + result, err := ivy.Eval(q[1]) + if err != nil { + result = err.Error() + } + conn.Notice(line.Target(), result) + } +} + +func (_ Ivy) Help() string { + return "interpreter for an APL-like language" +} + +func init() { + Register("!", &Ivy{}) +} -- cgit v1.2.3