ptoken lexer_token_copy(ptoken src, int line) { ptoken ret = member_new(token); memcpy(ret, src, sizeof(token)); ret->base.accept = &token_accept; ret->base.line = line; return ret; }
ptoken lexer_token_create(membertype type, char* string, int line) { ptoken ret = member_new(token); ret->base.type = type; ret->base.accept = &token_accept; ret->string = string; ret->base.line = line; return ret; }
int main(int argc, char **argv) { if (argc < 3 || argc > 4){ fprintf(stderr, "usage: %s <hostname> <port> (<sentence_file>)\n", argv[0]); return 1; } /* initialize rng for sentences & filler */ srandom(time(NULL)); if (argc == 4) { sentence_file = strdup(argv[3]); init_sentences(sentence_file); } else { sentence_file = NULL; } int port = atoi(argv[2]); int uv_res; struct sockaddr_in xb_addr; uv_res = uv_ip4_addr(argv[1], port, &xb_addr); if (uv_res) { fatal(uv_res, "could not obtain IP address"); } loop = uv_default_loop(); member *memb = member_new(); uv_tcp_init(loop, &memb->client); uv_res = uv_tcp_connect( &memb->connection, &memb->client, (const struct sockaddr*) &xb_addr, on_connect ); if (uv_res) { fatal(uv_res, "could not connect to server"); } return uv_run(loop, UV_RUN_DEFAULT); }