Skip to content

Instantly share code, notes, and snippets.

@mixflame
Created December 2, 2012 02:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mixflame/4186558 to your computer and use it in GitHub Desktop.
Save mixflame/4186558 to your computer and use it in GitHub Desktop.
Jonathans-MacBook-Pro:GlobalChat2 jsilverman2$ ruby GChat_2_server.rb
// ERROR: NoMethodError: undefined method `sexp_type' for nil:NilClass in s(:defn, :broadcast, s(:args, :message, :sender), s(:scope, s(:block, s(:if, s(:call, s(:lvar, :sender), :nil?), s(:lasgn, :sender, s(:nil)), nil), s(:iter, s(:call, s(:ivar, :@mutex), :synchronize, nil), s(:dasgn_curr, :temp_1), s(:iter, s(:call, s(:ivar, :@sockets), :each, nil), s(:dasgn_curr, :socket), s(:rescue, s(:if, s(:call, s(:dvar, :socket), :==, s(:arglist, s(:lvar, :sender))), nil, s(:call, nil, :sock_send, s(:arglist, s(:dvar, :socket), s(:lvar, :message)))), s(:resbody, nil, s(:block, s(:call, nil, :log, s(:arglist, s(:str, "broadcast fail removal event"))), s(:call, nil, :remove_dead_socket, s(:arglist, s(:dvar, :socket))))))))))) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', GChat_2_server.rb:371
Jonathans-MacBook-Pro:GlobalChat2 jsilverman2$ ruby GChat_2_server.rb
Error in method load_chat_log, trying to unify, whole body blew out
Error in method parse_line, trying to unify, whole body blew out
void broadcast_message(void * sender, str opcode, void * args);
void * buffer();
void * buffer=(void * arg);
long build_handle_list();
bool check_token(long chat_token);
long get_handle(long chat_token);
void * handle_keys();
void * handle_keys=(void * arg);
void * handles();
void * handles=(void * arg);
void log(str msg);
void * password();
void * password=(void * arg);
void pong_everyone();
void remove_dead_socket(long socket);
void save_chat_log();
void * scrollback();
void * scrollback=(void * arg);
void send_message(long io, str opcode, void * args);
void * server_name();
void * server_name=(void * arg);
void * socket_keys();
void * socket_keys=(void * arg);
void * sockets();
void * sockets=(void * arg);
void starting();
// ERROR: NoMethodError: undefined method `sexp_type' for nil:NilClass in s(:defn, :broadcast, s(:args, :message, :sender), s(:scope, s(:block, s(:if, s(:call, s(:lvar, :sender), :nil?), s(:lasgn, :sender, s(:nil)), nil), s(:iter, s(:call, s(:ivar, :@mutex), :synchronize, nil), s(:dasgn_curr, :temp_1), s(:iter, s(:call, s(:ivar, :@sockets), :each, nil), s(:dasgn_curr, :socket), s(:rescue, s(:if, s(:call, s(:dvar, :socket), :==, s(:arglist, s(:lvar, :sender))), nil, s(:call, nil, :sock_send, s(:arglist, s(:dvar, :socket), s(:lvar, :message)))), s(:resbody, nil, s(:block, s(:call, nil, :log, s(:arglist, s(:str, "broadcast fail removal event"))), s(:call, nil, :remove_dead_socket, s(:arglist, s(:dvar, :socket))))))))))) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:146:in `translate_all_of', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `each', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `translate_all_of', GChat_2_server.rb:371
void
broadcast_message(void * sender, str opcode, void * args) {
void * msg;
msg = strcat(opcode, "::!!::") + join(args, "::!!::");
broadcast(msg, sender);
}
void *
buffer() {
return self->buffer;
}
void *
buffer=(void * arg) {
return self->buffer = arg;
}
// ERROR: UnsupportedNodeError: 'dot2' is not a supported node type in s(:defn, :build_chat_log, s(:args), s(:scope, s(:block, s(:if, s(:ivar, :@scrollback), nil, s(:return, s(:str, ""))), s(:lasgn, :out, s(:str, "")), s(:lasgn, :displayed_buffer, s(:if, s(:call, s(:call, s(:ivar, :@buffer), :length, nil), :>, s(:arglist, s(:lit, 30))), s(:call, s(:ivar, :@buffer), :[], s(:arglist, s(:dot2, s(:call, s(:call, s(:ivar, :@buffer), :length, nil), :-, s(:arglist, s(:lit, 30))), s(:lit, -1)))), s(:ivar, :@buffer))), s(:iter, s(:call, s(:lvar, :displayed_buffer), :each, nil), s(:dasgn_curr, :msg), s(:lasgn, :out, s(:call, s(:lvar, :out), :+, s(:arglist, s(:dstr, "", s(:call, s(:dvar, :msg), :[], s(:arglist, s(:lit, 0))), s(:str, ": "), s(:call, s(:dvar, :msg), :[], s(:arglist, s(:lit, 1))), s(:str, "\n")))))), s(:return, s(:lvar, :out))))) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:146:in `translate_all_of', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `each', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `translate_all_of', GChat_2_server.rb:371
long
build_handle_list() {
return join(uniq(self->handles), "\n");
}
bool
check_token(long chat_token) {
long sender;
sender = self->handle_keys[chat_token];
return !(sender);
}
// ERROR: UnsupportedNodeError: 'masgn' is not a supported node type in s(:defn, :clean_handles, s(:args), s(:scope, s(:block, s(:iter, s(:call, s(:ivar, :@handle_keys), :each, nil), s(:masgn, s(:array, s(:dasgn_curr, :k), s(:dasgn_curr, :v))), s(:if, s(:and, s(:call, s(:ivar, :@handle_last_pinged), :[], s(:arglist, s(:dvar, :v))), s(:call, s(:call, s(:ivar, :@handle_last_pinged), :[], s(:arglist, s(:dvar, :v))), :<, s(:arglist, s(:call, s(:call, s(:const, :Time), :now, nil), :-, s(:arglist, s(:lit, 30)))))), s(:block, s(:call, nil, :log, s(:arglist, s(:dstr, "removed clone handle: ", s(:dvar, :v)))), s(:call, nil, :remove_user_by_handle, s(:arglist, s(:dvar, :v)))), nil))))) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:146:in `translate_all_of', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `each', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `translate_all_of', GChat_2_server.rb:371
long
get_handle(long chat_token) {
long sender;
sender = self->handle_keys[chat_token];
return sender;
}
void *
handle_keys() {
return self->handle_keys;
}
void *
handle_keys=(void * arg) {
return self->handle_keys = arg;
}
void *
handles() {
return self->handles;
}
void *
handles=(void * arg) {
return self->handles = arg;
}
// ERROR: TypeError: Unable to unify Type.homo with Type.bool in s(:defn, :load_chat_log, s(:args), s(:scope, s(:block, s(:iter, s(:call, s(:ivar, :@pstore), :transaction, s(:arglist, s(:true))), s(:dasgn_curr, :temp_2), s(:iasgn, :@buffer, s(:or, s(:call, s(:ivar, :@pstore), :[], s(:arglist, s(:lit, :log))), s(:array))))))) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:146:in `translate_all_of', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `each', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `translate_all_of', GChat_2_server.rb:371
void
log(str msg) {
puts(msg);
}
// ERROR: TypeError: Unable to unify Type.long with Type.bool in s(:defn, :parse_line, s(:args, :line, :io), s(:scope, s(:block, s(:lasgn, :parr, s(:call, s(:lvar, :line), :split, s(:arglist, s(:str, "::!!::")))), s(:lasgn, :command, s(:call, s(:lvar, :parr), :[], s(:arglist, s(:lit, 0)))), s(:if, s(:call, s(:lvar, :command), :==, s(:arglist, s(:str, "SIGNON"))), s(:block, s(:lasgn, :handle, s(:call, s(:lvar, :parr), :[], s(:arglist, s(:lit, 1)))), s(:lasgn, :password, s(:call, s(:lvar, :parr), :[], s(:arglist, s(:lit, 2)))), s(:if, s(:and, s(:call, s(:not, s(:call, s(:ivar, :@handles), :length, nil)), :==, s(:arglist, s(:lit, 0))), s(:call, s(:ivar, :@handles), :include?, s(:arglist, s(:lvar, :handle)))), s(:block, s(:call, nil, :send_message, s(:arglist, s(:lvar, :io), s(:str, "ALERT"), s(:array, s(:str, "Your handle is in use.")))), s(:call, s(:lvar, :io), :close, nil), s(:return)), nil), s(:if, s(:or, s(:call, s(:lvar, :handle), :==, s(:arglist, s(:nil))), s(:call, s(:lvar, :handle), :==, s(:arglist, s(:str, "")))), s(:block, s(:call, nil, :send_message, s(:arglist, s(:lvar, :io), s(:str, "ALERT"), s(:array, s(:str, "You cannot have a blank name.")))), s(:call, s(:lvar, :io), :close, nil), s(:return)), nil), s(:if, s(:or, s(:call, s(:ivar, :@password), :==, s(:arglist, s(:lvar, :password))), s(:and, s(:call, s(:lvar, :password), :===, s(:arglist, s(:nil))), s(:call, s(:ivar, :@password), :==, s(:arglist, s(:str, ""))))), s(:block, s(:lasgn, :chat_token, s(:call, s(:call, nil, :rand, s(:arglist, s(:call, s(:lit, 36), :**, s(:arglist, s(:lit, 8))))), :to_s, s(:arglist, s(:lit, 36)))), s(:iter, s(:call, s(:ivar, :@mutex), :synchronize, nil), s(:dasgn_curr, :temp_3), s(:block, s(:call, s(:ivar, :@handle_keys), :[]=, s(:arglist, s(:lvar, :chat_token), s(:lvar, :handle))), s(:call, s(:ivar, :@socket_keys), :[]=, s(:arglist, s(:lvar, :io), s(:lvar, :chat_token))), s(:call, s(:ivar, :@handles), :<<, s(:arglist, s(:lvar, :handle))), s(:call, s(:ivar, :@sockets), :<<, s(:arglist, s(:lvar, :io))))), s(:call, nil, :send_message, s(:arglist, s(:lvar, :io), s(:str, "TOKEN"), s(:array, s(:lvar, :chat_token), s(:lvar, :handle), s(:ivar, :@server_name)))), s(:call, nil, :broadcast_message, s(:arglist, s(:lvar, :io), s(:str, "JOIN"), s(:array, s(:lvar, :handle))))), s(:block, s(:call, nil, :send_message, s(:arglist, s(:lvar, :io), s(:str, "ALERT"), s(:array, s(:str, "Password is incorrect.")))), s(:call, s(:lvar, :io), :close, nil))), s(:return)), nil), s(:lasgn, :chat_token, s(:call, s(:lvar, :parr), :last, nil)), s(:if, s(:call, nil, :check_token, s(:arglist, s(:lvar, :chat_token))), s(:block, s(:lasgn, :handle, s(:call, nil, :get_handle, s(:arglist, s(:lvar, :chat_token)))), s(:if, s(:call, s(:lvar, :command), :==, s(:arglist, s(:str, "GETHANDLES"))), s(:call, nil, :send_message, s(:arglist, s(:lvar, :io), s(:str, "HANDLES"), s(:array, s(:call, nil, :build_handle_list, nil)))), s(:if, s(:call, s(:lvar, :command), :==, s(:arglist, s(:str, "GETBUFFER"))), s(:block, s(:lasgn, :buffer, s(:call, nil, :build_chat_log, nil)), s(:call, nil, :send_message, s(:arglist, s(:lvar, :io), s(:str, "BUFFER"), s(:array, s(:lvar, :buffer))))), s(:if, s(:call, s(:lvar, :command), :==, s(:arglist, s(:str, "MESSAGE"))), s(:block, s(:lasgn, :msg, s(:call, s(:lvar, :parr), :[], s(:arglist, s(:lit, 1)))), s(:call, s(:ivar, :@buffer), :<<, s(:arglist, s(:array, s(:lvar, :handle), s(:lvar, :msg)))), s(:call, nil, :broadcast_message, s(:arglist, s(:lvar, :io), s(:str, "SAY"), s(:array, s(:lvar, :handle), s(:lvar, :msg))))), s(:if, s(:call, s(:lvar, :command), :==, s(:arglist, s(:str, "PING"))), s(:block, s(:if, s(:call, s(:ivar, :@handles), :include?, s(:arglist, s(:lvar, :handle))), nil, s(:call, s(:ivar, :@handles), :<<, s(:arglist, s(:lvar, :handle)))), s(:call, s(:ivar, :@handle_last_pinged), :[]=, s(:arglist, s(:lvar, :handle), s(:call, s(:const, :Time), :now, nil)))), s(:if, s(:call, s(:lvar, :command), :==, s(:arglist, s(:str, "SIGNOFF"))), s(:call, nil, :broadcast_message, s(:arglist, s(:nil), s(:str, "LEAVE"), s(:array, s(:lvar, :handle)))), nil)))))), nil)))) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:146:in `translate_all_of', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `each', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `translate_all_of', GChat_2_server.rb:371
void *
password() {
return self->password;
}
void *
password=(void * arg) {
return self->password = arg;
}
void
pong_everyone() {
if (length(self->sockets) > 0 && !(stopped?(self))) {
broadcast_message(NULL, "PONG", build_handle_list());
clean_handles();
}
}
void
remove_dead_socket(long socket) {
long ct;
long handle;
delete(self->sockets, socket);
ct = self->socket_keys[socket];
handle = self->handle_keys[ct];
delete(self->handles, handle);
delete(self->handle_keys, ct);
delete(self->socket_keys, socket);
}
// ERROR: NoMethodError: undefined method `sexp_type' for nil:NilClass in s(:defn, :remove_user_by_handle, s(:args, :handle), s(:scope, s(:block, s(:lasgn, :ct, s(:call, s(:ivar, :@handle_keys), :key, s(:arglist, s(:lvar, :handle)))), s(:lasgn, :handle, s(:call, s(:ivar, :@handle_keys), :[], s(:arglist, s(:lvar, :ct)))), s(:lasgn, :socket, s(:call, s(:ivar, :@socket_keys), :key, s(:arglist, s(:lvar, :ct)))), s(:call, s(:ivar, :@sockets), :delete, s(:arglist, s(:lvar, :socket))), s(:call, s(:ivar, :@handles), :delete, s(:arglist, s(:lvar, :handle))), s(:call, s(:ivar, :@handle_keys), :delete, s(:arglist, s(:lvar, :ct))), s(:call, s(:ivar, :@socket_keys), :delete, s(:arglist, s(:lvar, :socket))), s(:rescue, s(:call, nil, :broadcast_message, s(:arglist, s(:lvar, :socket), s(:str, "LEAVE"), s(:array, s(:lvar, :handle)))), s(:resbody, nil, s(:call, nil, :log, s(:arglist, s(:dstr, "failed to broadcast LEAVE for clone handle ", s(:lvar, :handle))))))))) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:146:in `translate_all_of', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `each', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `translate_all_of', GChat_2_server.rb:371
void
save_chat_log() {
unsigned long index_temp_4;
for (index_temp_4 = 0; @pstore[index_temp_4] != NULL; ++index_temp_4) {
void * temp_4 = @pstore[index_temp_4];
[]=(self->pstore, "log", self->buffer);
}
}
void *
scrollback() {
return self->scrollback;
}
void *
scrollback=(void * arg) {
return self->scrollback = arg;
}
void
send_message(long io, str opcode, void * args) {
void * msg;
msg = strcat(opcode, "::!!::") + join(args, "::!!::");
sock_send(io, msg);
}
// ERROR: NotEmptyError: exp not empty after TypeChecker.process_dasgn_curr on s(s(:str, "")) in s(:defn, :serve, s(:args, :io), s(:scope, s(:block, s(:iter, s(:call, nil, :loop, nil), s(:dasgn_curr, :temp_5), s(:block, s(:dasgn_curr, :data, s(:str, "")), s(:rescue, s(:while, s(:dasgn_curr, :line, s(:call, s(:lvar, :io), :recv, s(:arglist, s(:lit, 1)))), s(:block, s(:if, s(:call, s(:dvar, :line), :==, s(:arglist, s(:str, "\000"))), s(:break), nil), s(:dasgn_curr, :data, s(:call, s(:dvar, :data), :+, s(:arglist, s(:dvar, :line))))), true), s(:resbody, nil, s(:block, s(:call, nil, :log, s(:arglist, s(:str, "recv break removal event"))), s(:call, nil, :remove_dead_socket, s(:arglist, s(:lvar, :io))), s(:break)))), s(:if, s(:call, s(:dvar, :data), :==, s(:arglist, s(:str, ""))), nil, s(:block, s(:call, nil, :log, s(:arglist, s(:dstr, "", s(:dvar, :data)))), s(:call, nil, :parse_line, s(:arglist, s(:dvar, :data), s(:lvar, :io)))))))))) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:146:in `translate_all_of', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `each', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `translate_all_of', GChat_2_server.rb:371
void *
server_name() {
return self->server_name;
}
void *
server_name=(void * arg) {
return self->server_name = arg;
}
// ERROR: UnsupportedNodeError: 'dstr' is not a supported node type in t(:defn, :sock_send, t(:args, t(:io, Type.long), t(:msg, Type.str), [Type.long, Type.str]), t(:scope, t(:block, t(:lasgn, :msg, t(:dstr, "", t(:lvar, :msg, Type.str), t(:str, "\000", Type.str), Type.str), Type.str), t(:call, nil, :log, t(:arglist, t(:lvar, :msg, Type.str), [Type.str]), Type.unknown), t(:call, t(:lvar, :io, Type.long), :send, t(:arglist, t(:lvar, :msg, Type.str), t(:lit, 0, Type.long), [Type.str, Type.long]), Type.unknown), Type.unknown), Type.void), Type.function(Type.unknown, [Type.long, Type.str], Type.void)) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:146:in `translate_all_of', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `each', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `translate_all_of', GChat_2_server.rb:371
void *
socket_keys() {
return self->socket_keys;
}
void *
socket_keys=(void * arg) {
return self->socket_keys = arg;
}
void *
sockets() {
return self->sockets;
}
void *
sockets=(void * arg) {
return self->sockets = arg;
}
// ERROR: UnsupportedNodeError: UnsupportedNodeError in t(:defn, :start_pong_loop, t(:args, []), t(:scope, t(:block, t(:iter, t(:call, t(:const, :Thread, Type.fucked), :new, nil, Type.unknown), t(:dasgn_curr, :temp_7, Type.fucked), t(:iter, t(:call, nil, :loop, nil, Type.unknown), t(:dasgn_curr, :temp_6, Type.unknown), t(:block, t(:call, nil, :sleep, t(:arglist, t(:lit, 5, Type.long), [Type.long]), Type.unknown), t(:call, nil, :pong_everyone, nil, Type.void), t(:call, nil, :save_chat_log, nil, Type.void), Type.unknown), Type.unknown), Type.void), Type.unknown), Type.void), Type.function(Type.unknown, [], Type.void)) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:146:in `translate_all_of', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `each', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `translate_all_of', GChat_2_server.rb:371
void
starting() {
log("GlobalChat2 Server Running");
start_pong_loop();
}
// ERROR: UnsupportedNodeError: 'dstr' is not a supported node type in t(:defn, :status, t(:args, []), t(:scope, t(:block, t(:lasgn, :passworded, t(:not, t(:call, t(:call, t(:lvar, :self, Type.fucked), :password, nil, Type.long), :==, t(:arglist, t(:str, "", Type.str), [Type.str]), Type.bool), Type.bool), Type.bool), t(:lasgn, :scrollback, t(:call, t(:lvar, :self, Type.fucked), :scrollback, nil, Type.unknown), Type.unknown), t(:call, nil, :log, t(:arglist, t(:dstr, "", t(:ivar, :@server_name, Type.unknown), t(:str, " running on GlobalChat2 3.0 platform Replay:", Type.str), t(:lvar, :scrollback, Type.unknown), t(:str, " Passworded:", Type.str), t(:lvar, :passworded, Type.bool), Type.str), [Type.str]), Type.unknown), Type.unknown), Type.void), Type.function(Type.unknown, [], Type.void)) from /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `call', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:291:in `error_handler', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/sexp_processor.rb:230:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:39:in `process', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `each', /Library/Ruby/Gems/1.8/gems/ParseTree-2.0.0/lib/composite_sexp_processor.rb:38:in `process', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:126:in `translate', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:146:in `translate_all_of', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `each', /Library/Ruby/Gems/1.8/gems/RubyToC-1.0.0.5/lib/ruby_to_ansi_c.rb:143:in `translate_all_of', GChat_2_server.rb:371
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment