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{}) }