void STRSGLR_ensure_init(void) { ATerm foo; static ATbool STRSGLR_init = ATfalse; if(STRSGLR_init) return; STRSGLR_init = ATtrue; ATregisterBlobDestructor(parse_table_blob_destructor); PT_initMEPTApi(); PT_initAsFix2Api(); initErrorApi(); SG_TOOLBUS_OFF(); SG_OUTPUT_ON(); foo = STRSGLR_set_default_config(); none_term = (ATerm) ATmakeAppl(ATmakeAFun("None", 0, ATfalse)); active_parse_tables = ATmakeList(0); inactive_parse_tables = malloc(sizeof(ATerm*) * MAX_INACTIVE_PARSE_TABLES); num_inactive_parse_tables = 0; ATprotect(&none_term); ATprotect(&parse_error_term); ATprotectList(&active_parse_tables); }
static void initApis() { PT_initMEPTApi(); ASF_initASFMEApi(); ASC_initRunTime(INITIAL_TABLE_SIZE); PT_initAsFix2Api(); PRS_initParsedRStoreApi(); RS_initRStoreApi(); }
int main(int argc, char **argv) { int c; ATerm bottomOfStack; PT_ParseTree tree, flatTree; /* Configuration items */ char *input="-"; char *output="-"; ATbool bafmode=ATtrue; ATbool verbose=ATfalse; ATbool proceed=ATtrue; extern char *optarg; extern int optind; /* Commandline mode */ while ((c = getopt(argc, argv, myarguments)) != -1) { switch (c) { case 'b': bafmode = ATtrue; break; case 'i': input=optarg; break; case 'o': output=optarg; break; case 't': bafmode = ATfalse; break; case 'v': verbose = ATtrue; break; case 'V': version(); proceed=ATfalse; break; case 'h': default: usage(); proceed=ATfalse; break; } } argc -= optind; argv += optind; ATinit(argc, argv, &bottomOfStack); PT_initMEPTApi(); PT_initAsFix2Api(); if(proceed) { tree = PT_ParseTreeFromTerm(ATreadFromNamedFile(input)); flatTree = flattenPT(tree); if(!flatTree) { ATerror("%s: conversion failed.", myname); } if(bafmode) { ATwriteToNamedBinaryFile(PT_ParseTreeToTerm(flatTree), output); } else { ATwriteToNamedTextFile(PT_ParseTreeToTerm(flatTree), output); } } return 0; }