int main(int argc, char** argv) { // extra's // + Change env to a hash table so that we don't have to // compare all the f*****g strings all the time? // + Make macro to easier get union child (!) (!) // + define a 'let' builtin LispyParser* lispy = new_parser(argc, argv); if (argc == 1) { puts("Lispy version 0.0.10"); puts("Press C-c to quit\n"); while(1) { char* input = readline("Lispy> "); add_history(input); eval_and_print(lispy, input); free(input); } } destroy_parser(&lispy); return 0; }
int main(void) { struct Scanner * scanner = new_scanner(); struct Parser * parser = new_parser(); parse(parser); return 0; }
struct nsa_parser * nsa_parse_init(struct nsa_context *cp) { struct nsa_parser *p = new_parser(); p->toks = list_create(LIST_DOUBLE); p->context = cp; p->pool = npool_init(); return p; }
static BtorBTORParser * btor_new_btor_parser (Btor * btor, BtorParseOpt * opts) { BtorMemMgr *mem = btor->mm; BtorBTORParser *res; (void) opts->incremental; // TODO what about incremental? (void) opts->need_model; // TODO use at least this assert (opts->verbosity >= -1); BTOR_NEW (mem, res); BTOR_CLR (res); res->mem = mem; res->btor = btor; BTOR_NEWN (mem, res->parsers, SIZE_PARSERS); BTOR_NEWN (mem, res->ops, SIZE_PARSERS); BTOR_CLRN (res->ops, SIZE_PARSERS); new_parser (res, parse_add, "add"); new_parser (res, parse_and, "and"); new_parser (res, parse_array, "array"); new_parser (res, parse_concat, "concat"); new_parser (res, parse_cond, "cond"); new_parser (res, parse_acond, "acond"); new_parser (res, parse_const, "const"); new_parser (res, parse_constd, "constd"); new_parser (res, parse_consth, "consth"); new_parser (res, parse_eq, "eq"); new_parser (res, parse_iff, "iff"); new_parser (res, parse_implies, "implies"); new_parser (res, parse_mul, "mul"); new_parser (res, parse_nand, "nand"); new_parser (res, parse_neg, "neg"); new_parser (res, parse_inc, "inc"); new_parser (res, parse_dec, "dec"); new_parser (res, parse_ne, "ne"); new_parser (res, parse_next, "next"); /* only in parser */ new_parser (res, parse_anext, "anext"); /* only in parser */ new_parser (res, parse_nor, "nor"); new_parser (res, parse_not, "not"); new_parser (res, parse_one, "one"); new_parser (res, parse_ones, "ones"); new_parser (res, parse_or, "or"); new_parser (res, parse_proxy, "proxy"); new_parser (res, parse_read, "read"); new_parser (res, parse_redand, "redand"); new_parser (res, parse_redor, "redor"); new_parser (res, parse_redxor, "redxor"); new_parser (res, parse_rol, "rol"); new_parser (res, parse_root, "root"); /* only in parser */ new_parser (res, parse_ror, "ror"); new_parser (res, parse_saddo, "saddo"); new_parser (res, parse_sdivo, "sdivo"); new_parser (res, parse_sdiv, "sdiv"); new_parser (res, parse_sext, "sext"); new_parser (res, parse_sgte, "sgte"); new_parser (res, parse_sgt, "sgt"); new_parser (res, parse_slice, "slice"); new_parser (res, parse_sll, "sll"); new_parser (res, parse_slte, "slte"); new_parser (res, parse_slt, "slt"); new_parser (res, parse_smod, "smod"); new_parser (res, parse_smulo, "smulo"); new_parser (res, parse_sra, "sra"); new_parser (res, parse_srem, "srem"); new_parser (res, parse_srl, "srl"); new_parser (res, parse_ssubo, "ssubo"); new_parser (res, parse_sub, "sub"); new_parser (res, parse_uaddo, "uaddo"); new_parser (res, parse_udiv, "udiv"); new_parser (res, parse_uext, "uext"); new_parser (res, parse_ugte, "ugte"); new_parser (res, parse_ugt, "ugt"); new_parser (res, parse_ulte, "ulte"); new_parser (res, parse_ult, "ult"); new_parser (res, parse_umulo, "umulo"); new_parser (res, parse_urem, "urem"); new_parser (res, parse_usubo, "usubo"); new_parser (res, parse_var, "var"); new_parser (res, parse_write, "write"); new_parser (res, parse_xnor, "xnor"); new_parser (res, parse_xor, "xor"); new_parser (res, parse_zero, "zero"); res->verbosity = opts->verbosity; return res; }