'#!/usr/bin/env newlisp' Comment.Preproc '\n\n' Text ';; @module IRC' Comment.Single '\n' Text ';; @description a basic irc library' Comment.Single '\n' Text ';; @version early alpha! 0.1 2011-10-31 14:21:26' Comment.Single '\n' Text ';; @author cormullion' Comment.Single '\n' Text ';; Usage:' Comment.Single '\n' Text ';; (IRC:init "newlithper") ; a username/nick (not that one obviously :-)' Comment.Single '\n' Text ';; (IRC:connect "irc.freenode.net" 6667) ; irc/server' Comment.Single '\n' Text ';; (IRC:join-channel {#newlisp}) ; join a room' Comment.Single '\n' Text ';; either (IRC:read-irc-loop) ; loop - monitor only, no input' Comment.Single '\n' Text ';; or (IRC:session) ; a command-line session, end with /QUIT' Comment.Single '\n\n' Text '(' Punctuation 'context' Keyword ' ' Text "'" Operator 'IRC' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'define' Keyword ' ' Text 'Inickname' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'define' Keyword ' ' Text 'Ichannels' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'define' Keyword ' ' Text 'Iserver' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'define' Keyword ' ' Text 'Iconnected' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'define' Keyword ' ' Text 'Icallbacks' Literal.String.Symbol ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'define' Keyword ' ' Text 'Idle-time' Literal.String.Symbol ' ' Text '400' Literal.String.Symbol ')' Punctuation ' ' Text '; seconds' Comment.Single '\n ' Text '(' Punctuation 'define' Keyword ' ' Text 'Itime-stamp' Literal.String.Symbol ')' Punctuation ' ' Text '; time since last message was processed' Comment.Single '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'register-callback' Name.Variable ' ' Text 'callback' Keyword '-' Keyword 'name' Literal.String.Symbol ' ' Text 'callback' Keyword '-' Keyword 'function' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'println' Keyword ' ' Text '{' Literal.String 'registering callback for ' Literal.String '}' Literal.String ' ' Text 'callback' Keyword '-' Keyword 'name' Literal.String.Symbol ' ' Text '{' Literal.String ' : ' Literal.String '}' Literal.String ' ' Text '(' Punctuation 'sym' Keyword ' ' Text '(' Punctuation 'term' Keyword ' ' Text 'callback' Keyword '-' Keyword 'function' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'prefix' Keyword ' ' Text 'callback' Keyword '-' Keyword 'function' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'push' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text 'callback' Keyword '-' Keyword 'name' Literal.String.Symbol ' ' Text '(' Punctuation 'sym' Keyword ' ' Text '(' Punctuation 'term' Keyword ' ' Text 'callback' Keyword '-' Keyword 'function' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'prefix' Keyword ' ' Text 'callback' Keyword '-' Keyword 'function' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text 'Icallbacks' Literal.String.Symbol ')' Punctuation ')' Punctuation ' \n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'do-callback' Name.Variable ' ' Text 'callback' Keyword '-' Keyword 'name' Literal.String.Symbol ' ' Text 'data' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'when' Keyword ' ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'func' Literal.String.Symbol ' ' Text '(' Punctuation 'lookup' Keyword ' ' Text 'callback' Keyword '-' Keyword 'name' Literal.String.Symbol ' ' Text 'Icallbacks' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text '; find first callback' Comment.Single '\n ' Text '(' Punctuation 'if-not' Keyword ' ' Text '(' Punctuation 'catch' Keyword ' ' Text '(' Punctuation 'apply' Keyword ' ' Text 'func' Literal.String.Symbol ' ' Text '(' Punctuation 'list' Keyword ' ' Text 'data' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text "'" Operator 'error' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'println' Keyword ' ' Text '{' Literal.String 'error in callback ' Literal.String '}' Literal.String ' ' Text 'callback' Keyword '-' Keyword 'name' Literal.String.Symbol ' ' Text '{' Literal.String ': ' Literal.String '}' Literal.String ' ' Text 'error' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text 'callback' Keyword '-' Keyword 'name' Literal.String.Symbol ' ' Text 'data' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'dolist' Keyword ' ' Text '(' Punctuation 'rf' Name.Variable ' ' Text '(' Punctuation 'ref-all' Keyword ' ' Text 'callback' Keyword '-' Keyword 'name' Literal.String.Symbol ' ' Text 'Icallbacks' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'callback' Keyword '-' Keyword 'entry' Literal.String.Symbol ' ' Text '(' Punctuation 'Icallbacks' Name.Variable ' ' Text '(' Punctuation 'first' Keyword ' ' Text 'rf' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'when' Keyword ' ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'func' Literal.String.Symbol ' ' Text '(' Punctuation 'last' Keyword ' ' Text 'callback' Keyword '-' Keyword 'entry' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if-not' Keyword ' ' Text '(' Punctuation 'catch' Keyword ' ' Text '(' Punctuation 'apply' Keyword ' ' Text 'func' Literal.String.Symbol ' ' Text '(' Punctuation 'list' Keyword ' ' Text 'data' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text "'" Operator 'error' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'println' Keyword ' ' Text '{' Literal.String 'error in callback ' Literal.String '}' Literal.String ' ' Text 'callback' Keyword '-' Keyword 'name' Literal.String.Symbol ' ' Text '{' Literal.String ': ' Literal.String '}' Literal.String ' ' Text 'error' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'init' Name.Variable ' ' Text 'str' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'Inickname' Literal.String.Symbol ' ' Text 'str' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'Iconnected' Literal.String.Symbol ' ' Text 'nil' Keyword ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'Ichannels' Literal.String.Symbol ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'Itime-stamp' Literal.String.Symbol ' ' Text '(' Punctuation 'time-of-day' Keyword ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'connect' Name.Variable ' ' Text 'server' Literal.String.Symbol ' ' Text 'port' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'net-connect' Keyword ' ' Text 'server' Literal.String.Symbol ' ' Text 'port' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"USER %s %s %s :%s\\r\\n"' Literal.String ' ' Text 'Inickname' Literal.String.Symbol ' ' Text 'Inickname' Literal.String.Symbol ' ' Text 'Inickname' Literal.String.Symbol ' ' Text 'Inickname' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"NICK %s \\r\\n"' Literal.String ' ' Text 'Inickname' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'Iconnected' Literal.String.Symbol ' ' Text 'true' Keyword ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"connect"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"server"' Literal.String ' ' Text 'server' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"port"' Literal.String ' ' Text 'port' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'identify' Name.Variable ' ' Text 'password' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"PRIVMSG nickserv :identify %s\\r\\n"' Literal.String ' ' Text 'password' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'join' Keyword '-' Keyword 'channel' Literal.String.Symbol ' ' Text 'channel' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'when' Keyword ' ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"JOIN %s \\r\\n"' Literal.String ' ' Text 'channel' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'push' Keyword ' ' Text 'channel' Literal.String.Symbol ' ' Text 'Ichannels' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"join-channel"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"channel"' Literal.String ' ' Text 'channel' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"nickname"' Literal.String ' ' Text 'Inickname' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'part' Name.Variable ' ' Text 'chan' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'if-not' Keyword ' ' Text '(' Punctuation 'empty?' Name.Variable ' ' Text 'chan' Literal.String.Symbol ')' Punctuation '\n ' Text '; leave specified' Comment.Single '\n ' Text '(' Punctuation 'begin' Keyword '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"PART %s\\r\\n"' Literal.String ' ' Text 'chan' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'replace' Keyword ' ' Text 'channel' Literal.String.Symbol ' ' Text 'Ichannels' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"part"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"channel"' Literal.String ' ' Text 'channel' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '; leave all' Comment.Single '\n ' Text '(' Punctuation 'begin' Keyword '\n ' Text '(' Punctuation 'dolist' Keyword ' ' Text '(' Punctuation 'channel' Name.Variable ' ' Text 'Ichannels' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"PART %s\\r\\n"' Literal.String ' ' Text 'channel' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'replace' Keyword ' ' Text 'channel' Literal.String.Symbol ' ' Text 'Ichannels' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"part"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"channel"' Literal.String ' ' Text 'channel' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'do-quit' Name.Variable ' ' Text 'message' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"quit"' Literal.String ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation ' ' Text '; chance to do stuff before quit...' Comment.Single '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"QUIT :%s\\r\\n"' Literal.String ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'sleep' Keyword ' ' Text '1000' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'Ichannels' Literal.String.Symbol ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'close' Keyword ' ' Text 'Iserver' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'Iconnected' Literal.String.Symbol ' ' Text 'nil' Keyword ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'privmsg' Name.Variable ' ' Text 'user' Literal.String.Symbol ' ' Text 'message' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"PRIVMSG %s :%s\\r\\n"' Literal.String ' ' Text 'user' Literal.String.Symbol ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'notice' Name.Variable ' ' Text 'user' Literal.String.Symbol ' ' Text 'message' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"NOTICE %s :%s\\r\\n"' Literal.String ' ' Text 'user' Literal.String.Symbol ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'send' Keyword '-' Keyword 'to-server' Literal.String.Symbol ' ' Text 'message' Literal.String.Symbol ' ' Text '(' Punctuation 'channel' Name.Variable ' ' Text 'nil' Keyword ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'cond' Keyword '\n ' Text '(' Punctuation '(' Punctuation 'starts-with' Keyword ' ' Text 'message' Literal.String.Symbol ' ' Text '{' Literal.String '/' Literal.String '}' Literal.String ')' Punctuation ' ' Text '; default command character' Comment.Single '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'the-message' Literal.String.Symbol ' ' Text '(' Punctuation 'replace' Keyword ' ' Text '"^/"' Literal.String ' ' Text '(' Punctuation 'copy' Keyword ' ' Text 'message' Literal.String.Symbol ')' Punctuation ' ' Text '{' Literal.String '}' Literal.String ' ' Text '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text '; keep original' Comment.Single '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"%s \\r\\n"' Literal.String ' ' Text 'the-message' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text '; send it' Comment.Single '\n ' Text '; do a quit' Comment.Single '\n ' Text '(' Punctuation 'if' Keyword ' ' Text '(' Punctuation 'starts-with' Keyword ' ' Text '(' Punctuation 'lower-case' Keyword ' ' Text 'the-message' Literal.String.Symbol ')' Punctuation ' ' Text '"quit"' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'do-quit' Name.Variable ' ' Text '{' Literal.String ' enough' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'true' Keyword ' \n ' Text '(' Punctuation 'if' Keyword ' ' Text '(' Punctuation 'nil' Keyword '?' Literal.String.Symbol ' ' Text 'channel' Literal.String.Symbol ')' Punctuation '\n ' Text '; say to all channels' Comment.Single '\n ' Text '(' Punctuation 'dolist' Keyword ' ' Text '(' Punctuation 'c' Name.Variable ' ' Text 'Ichannels' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"PRIVMSG %s :%s\\r\\n"' Literal.String ' ' Text 'c' Literal.String.Symbol ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '; say to specified channel' Comment.Single '\n ' Text '(' Punctuation 'if' Keyword ' ' Text '(' Punctuation 'find' Keyword ' ' Text 'channel' Literal.String.Symbol ' ' Text 'Ichannels' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"PRIVMSG %s :%s\\r\\n"' Literal.String ' ' Text 'channel' Literal.String.Symbol ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"send-to-server"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"channel"' Literal.String ' ' Text 'channel' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"message"' Literal.String ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'process' Keyword '-' Keyword 'command' Literal.String.Symbol ' ' Text 'sender' Literal.String.Symbol ' ' Text 'command' Literal.String.Symbol ' ' Text 'text' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'cond' Keyword '\n ' Text '(' Punctuation '(' Punctuation '=' Name.Variable ' ' Text 'sender' Literal.String.Symbol ' ' Text '"PING"' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"PONG %s\\r\\n"' Literal.String ' ' Text 'command' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation 'or' Keyword ' ' Text '(' Punctuation '=' Name.Variable ' ' Text 'command' Literal.String.Symbol ' ' Text '"NOTICE"' Literal.String ')' Punctuation ' ' Text '(' Punctuation '=' Name.Variable ' ' Text 'command' Literal.String.Symbol ' ' Text '"PRIVMSG"' Literal.String ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'process' Keyword '-' Keyword 'message' Literal.String.Symbol ' ' Text 'sender' Literal.String.Symbol ' ' Text 'command' Literal.String.Symbol ' ' Text 'text' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation '=' Name.Variable ' ' Text 'command' Literal.String.Symbol ' ' Text '"JOIN"' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'username' Literal.String.Symbol ' ' Text '(' Punctuation 'first' Keyword ' ' Text '(' Punctuation 'clean' Keyword ' ' Text 'empty?' Literal.String.Symbol ' ' Text '(' Punctuation 'parse' Keyword ' ' Text 'sender' Literal.String.Symbol ' ' Text '{' Literal.String '!|:' Literal.String '}' Literal.String ' ' Text '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'channel' Literal.String.Symbol ' ' Text '(' Punctuation 'last' Keyword ' ' Text '(' Punctuation 'clean' Keyword ' ' Text 'empty?' Literal.String.Symbol ' ' Text '(' Punctuation 'parse' Keyword ' ' Text 'sender' Literal.String.Symbol ' ' Text '{' Literal.String '!|:' Literal.String '}' Literal.String ' ' Text '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'println' Keyword ' ' Text '{' Literal.String 'username ' Literal.String '}' Literal.String ' ' Text 'username' Literal.String.Symbol ' ' Text '{' Literal.String ' joined ' Literal.String '}' Literal.String ' ' Text 'channel' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"join"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"channel"' Literal.String ' ' Text 'channel' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"username"' Literal.String ' ' Text 'username' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'true' Keyword '\n ' Text 'nil' Keyword ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'process' Keyword '-' Keyword 'message' Literal.String.Symbol ' ' Text 'sender' Literal.String.Symbol ' ' Text 'command' Literal.String.Symbol ' ' Text 'text' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'let' Keyword ' ' Text '(' Punctuation '(' Punctuation 'username' Name.Variable ' ' Text '{' Literal.String '}' Literal.String ' ' Text 'target' Literal.String.Symbol ' ' Text '{' Literal.String '}' Literal.String ' ' Text 'message' Literal.String.Symbol ' ' Text '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'username' Literal.String.Symbol ' ' Text '(' Punctuation 'first' Keyword ' ' Text '(' Punctuation 'clean' Keyword ' ' Text 'empty?' Literal.String.Symbol ' ' Text '(' Punctuation 'parse' Keyword ' ' Text 'sender' Literal.String.Symbol ' ' Text '{' Literal.String '!|:' Literal.String '}' Literal.String ' ' Text '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'target' Literal.String.Symbol ' ' Text '(' Punctuation 'trim' Keyword ' ' Text '(' Punctuation 'first' Keyword ' ' Text '(' Punctuation 'clean' Keyword ' ' Text 'empty?' Literal.String.Symbol ' ' Text '(' Punctuation 'parse' Keyword ' ' Text 'text' Literal.String.Symbol ' ' Text '{' Literal.String '!|:' Literal.String '}' Literal.String ' ' Text '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'message' Literal.String.Symbol ' ' Text '(' Punctuation 'slice' Keyword ' ' Text 'text' Literal.String.Symbol ' ' Text '(' Punctuation '+' Name.Variable ' ' Text '(' Punctuation 'find' Keyword ' ' Text '{' Literal.String ':' Literal.String '}' Literal.String ' ' Text 'text' Literal.String.Symbol ')' Punctuation ' ' Text '1' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'cond' Keyword ' \n ' Text '(' Punctuation '(' Punctuation 'starts-with' Keyword ' ' Text 'message' Literal.String.Symbol ' ' Text '"\\001"' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'process' Keyword '-' Keyword 'ctcp' Literal.String.Symbol ' ' Text 'username' Literal.String.Symbol ' ' Text 'target' Literal.String.Symbol ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation 'find' Keyword ' ' Text 'target' Literal.String.Symbol ' ' Text 'Ichannels' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'cond' Keyword ' \n ' Text '(' Punctuation '(' Punctuation '=' Name.Variable ' ' Text 'command' Literal.String.Symbol ' ' Text '{' Literal.String 'PRIVMSG' Literal.String '}' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"channel-message"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"channel"' Literal.String ' ' Text 'target' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"username"' Literal.String ' ' Text 'username' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"message"' Literal.String ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation '=' Name.Variable ' ' Text 'command' Literal.String.Symbol ' ' Text '{' Literal.String 'NOTICE' Literal.String '}' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"channel-notice"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"channel"' Literal.String ' ' Text 'target' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"username"' Literal.String ' ' Text 'username' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"message"' Literal.String ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation '=' Name.Variable ' ' Text 'target' Literal.String.Symbol ' ' Text 'Inickname' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'cond' Keyword ' \n ' Text '(' Punctuation '(' Punctuation '=' Name.Variable ' ' Text 'command' Literal.String.Symbol ' ' Text '{' Literal.String 'PRIVMSG' Literal.String '}' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"private-message"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"username"' Literal.String ' ' Text 'username' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"message"' Literal.String ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation '=' Name.Variable ' ' Text 'command' Literal.String.Symbol ' ' Text '{' Literal.String 'NOTICE' Literal.String '}' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"private-notice"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"username"' Literal.String ' ' Text 'username' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"message"' Literal.String ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'true' Keyword ' \n ' Text 'nil' Keyword ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n \n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'process' Keyword '-' Keyword 'ctcp' Literal.String.Symbol ' ' Text 'username' Literal.String.Symbol ' ' Text 'target' Literal.String.Symbol ' ' Text 'message' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'cond' Keyword '\n ' Text '(' Punctuation '(' Punctuation 'starts-with' Keyword ' ' Text 'message' Literal.String.Symbol ' ' Text '"\\001VERSION\\001"' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"NOTICE %s :\\001VERSION %s\\001\\r\\n"' Literal.String ' ' Text 'username' Literal.String.Symbol ' ' Text 'version' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation 'starts-with' Keyword ' ' Text 'message' Literal.String.Symbol ' ' Text '"\\001PING"' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'data' Literal.String.Symbol ' ' Text '(' Punctuation 'first' Keyword ' ' Text '(' Punctuation 'rest' Keyword ' ' Text '(' Punctuation 'clean' Keyword ' ' Text 'empty?' Literal.String.Symbol ' ' Text '(' Punctuation 'parse' Keyword ' ' Text 'message' Literal.String.Symbol ' ' Text '{' Literal.String ' ' Literal.String '}' Literal.String ' ' Text '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'data' Literal.String.Symbol ' ' Text '(' Punctuation 'trim' Keyword ' ' Text 'data' Literal.String.Symbol ' ' Text '"\\001"' Literal.String ' ' Text '"\\001"' Literal.String ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"NOTICE %s :\\001PING %s\\001\\r\\n"' Literal.String ' ' Text 'username' Literal.String.Symbol ' ' Text 'data' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation 'starts-with' Keyword ' ' Text 'message' Literal.String.Symbol ' ' Text '"\\001ACTION"' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'data' Literal.String.Symbol ' ' Text '(' Punctuation 'first' Keyword ' ' Text '(' Punctuation 'rest' Keyword ' ' Text '(' Punctuation 'clean' Keyword ' ' Text 'empty?' Literal.String.Symbol ' ' Text '(' Punctuation 'parse' Keyword ' ' Text 'message' Literal.String.Symbol ' ' Text '{' Literal.String ' ' Literal.String '}' Literal.String ' ' Text '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'data' Literal.String.Symbol ' ' Text '(' Punctuation 'join' Keyword ' ' Text 'data' Literal.String.Symbol ' ' Text '{' Literal.String ' ' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'data' Literal.String.Symbol ' ' Text '(' Punctuation 'trim' Keyword ' ' Text 'data' Literal.String.Symbol ' ' Text '"\\001"' Literal.String ' ' Text '"\\001"' Literal.String ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if' Keyword ' ' Text '(' Punctuation 'find' Keyword ' ' Text 'target' Literal.String.Symbol ' ' Text 'Ichannels' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"channel-action"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"username"' Literal.String ' ' Text 'username' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"message"' Literal.String ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if' Keyword ' ' Text '(' Punctuation '=' Name.Variable ' ' Text 'target' Literal.String.Symbol ' ' Text 'Inickname' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"private-action"' Literal.String ' ' Text '(' Punctuation 'list' Keyword ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"username"' Literal.String ' ' Text 'username' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'list' Keyword ' ' Text '"message"' Literal.String ' ' Text 'message' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation 'starts-with' Keyword ' ' Text 'message' Literal.String.Symbol ' ' Text '"\\001TIME\\001"' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'net-send' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text '(' Punctuation 'format' Keyword ' ' Text '"NOTICE %s:\\001TIME :%s\\001\\r\\n"' Literal.String ' ' Text 'username' Literal.String.Symbol ' ' Text '(' Punctuation 'date' Keyword ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'parse' Keyword '-' Keyword 'buffer' Literal.String.Symbol ' ' Text 'raw-buffer' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'let' Keyword ' ' Text '(' Punctuation '(' Punctuation 'messages' Name.Variable ' ' Text '(' Punctuation 'clean' Keyword ' ' Text 'empty?' Literal.String.Symbol ' ' Text '(' Punctuation 'parse' Keyword ' ' Text 'raw-buffer' Literal.String.Symbol ' ' Text '"\\r\\n"' Literal.String ' ' Text '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'sender' Name.Variable ' ' Text '{' Literal.String '}' Literal.String ' ' Text 'command' Literal.String.Symbol ' ' Text '{' Literal.String '}' Literal.String ' ' Text 'text' Literal.String.Symbol ' ' Text '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text '; check for elapsed time since last activity ' Comment.Single '\n ' Text '(' Punctuation 'when' Keyword ' ' Text '(' Punctuation '>' Name.Variable ' ' Text '(' Punctuation 'sub' Keyword ' ' Text '(' Punctuation 'time-of-day' Keyword ')' Punctuation ' ' Text 'Itime-stamp' Literal.String.Symbol ')' Punctuation ' ' Text '(' Punctuation 'mul' Keyword ' ' Text 'Idle-time' Literal.String.Symbol ' ' Text '1000' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'do-callbacks' Name.Variable ' ' Text '"idle-event"' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'Itime-stamp' Literal.String.Symbol ' ' Text '(' Punctuation 'time-of-day' Keyword ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'dolist' Keyword ' ' Text '(' Punctuation 'message' Name.Variable ' ' Text 'messages' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'message-parts' Literal.String.Symbol ' ' Text '(' Punctuation 'parse' Keyword ' ' Text 'message' Literal.String.Symbol ' ' Text '{' Literal.String ' ' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ' \n ' Text '(' Punctuation 'unless' Keyword ' ' Text '(' Punctuation 'empty?' Name.Variable ' ' Text 'message-parts' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'sender' Literal.String.Symbol ' ' Text '(' Punctuation 'first' Keyword ' ' Text 'message-parts' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'catch' Keyword ' ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'command' Literal.String.Symbol ' ' Text '(' Punctuation 'first' Keyword ' ' Text '(' Punctuation 'rest' Keyword ' ' Text 'message-parts' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text "'" Operator 'error' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'catch' Keyword ' ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'text' Literal.String.Symbol ' ' Text '(' Punctuation 'join' Keyword ' ' Text '(' Punctuation 'rest' Keyword ' ' Text '(' Punctuation 'rest' Keyword ' ' Text 'message-parts' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text '{' Literal.String ' ' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ' ' Text "'" Operator 'error' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'process' Keyword '-' Keyword 'command' Literal.String.Symbol ' ' Text 'sender' Literal.String.Symbol ' ' Text 'command' Literal.String.Symbol ' ' Text 'text' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'read' Keyword '-' Keyword 'irc' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'let' Keyword ' ' Text '(' Punctuation '(' Punctuation 'buffer' Name.Variable ' ' Text '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'when' Keyword ' ' Text '(' Punctuation '!=' Name.Variable ' ' Text '(' Punctuation 'net-peek' Keyword ' ' Text 'Iserver' Literal.String.Symbol ')' Punctuation ' ' Text '0' Literal.String.Symbol ')' Punctuation ' \n ' Text '(' Punctuation 'net-receive' Keyword ' ' Text 'Iserver' Literal.String.Symbol ' ' Text 'buffer' Literal.String.Symbol ' ' Text '8192' Literal.String.Symbol ' ' Text '"\\n"' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'unless' Keyword ' ' Text '(' Punctuation 'empty?' Name.Variable ' ' Text 'buffer' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'parse' Keyword '-' Keyword 'buffer' Literal.String.Symbol ' ' Text 'buffer' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'read' Keyword '-' Keyword 'irc-loop' Literal.String.Symbol ')' Punctuation ' ' Text '; monitoring' Comment.Single '\n ' Text '(' Punctuation 'let' Keyword ' ' Text '(' Punctuation '(' Punctuation 'buffer' Name.Variable ' ' Text '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ' \n ' Text '(' Punctuation 'while' Keyword ' ' Text 'Iconnected' Literal.String.Symbol ' \n ' Text '(' Punctuation 'read' Keyword '-' Keyword 'irc' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'sleep' Keyword ' ' Text '1000' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'print' Keyword '-' Keyword 'raw-message' Literal.String.Symbol ' ' Text 'data' Literal.String.Symbol ')' Punctuation ' ' Text '; example of using a callback' Comment.Single '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'raw-data' Literal.String.Symbol ' ' Text '(' Punctuation 'lookup' Keyword ' ' Text '"message"' Literal.String ' ' Text 'data' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'channel' Literal.String.Symbol ' ' Text '(' Punctuation 'lookup' Keyword ' ' Text '"channel"' Literal.String ' ' Text 'data' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'message-text' Literal.String.Symbol ' ' Text 'raw-data' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'println' Keyword ' ' Text '(' Punctuation 'date' Keyword ' ' Text '(' Punctuation 'date-value' Keyword ')' Punctuation ' ' Text '0' Literal.String.Symbol ' ' Text '{' Literal.String '%H:%M:%S ' Literal.String '}' Literal.String ')' Punctuation ' ' Text 'username' Literal.String.Symbol ' ' Text '{' Literal.String '> ' Literal.String '}' Literal.String ' ' Text 'message-text' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'print' Keyword '-' Keyword 'outgoing-message' Literal.String.Symbol ' ' Text 'data' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'raw-data' Literal.String.Symbol ' ' Text '(' Punctuation 'lookup' Keyword ' ' Text '"message"' Literal.String ' ' Text 'data' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'channel' Literal.String.Symbol ' ' Text '(' Punctuation 'lookup' Keyword ' ' Text '"channel"' Literal.String ' ' Text 'data' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set' Keyword ' ' Text "'" Operator 'message-text' Literal.String.Symbol ' ' Text 'raw-data' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'println' Keyword ' ' Text '(' Punctuation 'date' Keyword ' ' Text '(' Punctuation 'date-value' Keyword ')' Punctuation ' ' Text '0' Literal.String.Symbol ' ' Text '{' Literal.String '%H:%M:%S ' Literal.String '}' Literal.String ')' Punctuation ' ' Text 'Inickname' Literal.String.Symbol ' ' Text '{' Literal.String '> ' Literal.String '}' Literal.String ' ' Text 'message-text' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define' Keyword ' ' Text '(' Punctuation 'session' Name.Variable ')' Punctuation '; interactive terminal' Comment.Single '\n ' Text '; must add callbacks to display messages' Comment.Single '\n ' Text '(' Punctuation 'register-callback' Name.Variable ' ' Text '"channel-message"' Literal.String ' ' Text "'" Operator 'print' Keyword '-' Keyword 'raw-message' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'register-callback' Name.Variable ' ' Text '"send-to-server"' Literal.String ' ' Text "'" Operator 'print' Keyword '-' Keyword 'outgoing-message' Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'while' Keyword ' ' Text 'Iconnected' Literal.String.Symbol '\n ' Text '(' Punctuation 'while' Keyword ' ' Text '(' Punctuation 'zero?' Name.Variable ' ' Text '(' Punctuation 'peek' Keyword ' ' Text '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'read' Keyword '-' Keyword 'irc' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'send' Keyword '-' Keyword 'to-server' Literal.String.Symbol ' ' Text '(' Punctuation 'string' Keyword ' ' Text '(' Punctuation 'read-line' Keyword ' ' Text '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'println' Keyword ' ' Text '{' Literal.String 'finished session ' Literal.String '}' Literal.String ' ' Text '(' Punctuation 'date' Keyword ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'exit' Keyword ')' Punctuation ')' Punctuation '\n\n' Text '; end of IRC code' Comment.Single '\n' Text