static ATerm parse(const unsigned char *inputString, unsigned int inputStringLength, const char *inputPath, const char *parseTableName){ PT_ParseTree parseTree; InputString sglrInputString; ERR_resetErrorManager(); sglrInputString = IS_allocateString(inputPath, inputString, inputStringLength); if(inputString == NULL){ return ERR_SummaryToTerm(ERR_getManagerSummary()); } if(!SGLR_isParseTableLoaded(parseTableName)){ if(SG_AddParseTable(parseTableName) == NULL){ return ERR_SummaryToTerm(ERR_getManagerSummary()); } } parseTree = SGLR_parse(sglrInputString, parseTableName); if(parseTree == NULL){ return ERR_SummaryToTerm(ERR_getManagerSummary()); } return PT_ParseTreeToTerm(parseTree); }
static PT_ParseTree parsetreeFromTextFile(const char *filename) { PT_ParseTree parseResult = NULL; InputString inputString; FLT_setInjectionCountFlag(ATfalse); FLT_setPreferenceCountFlag(ATfalse); if (loadParseTable()) { inputString = IS_createInputStringFromFile(filename); parseResult = SGLR_parse(inputString, getParseTableID()); } else { ATerror("asc-main: parse table not loaded."); } if (parseResult != NULL) { return parseResult; } else { ATerror("asc-main: unknown error while parsing %s\n", filename); exit(1); } return NULL; }