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);
}
Exemple #2
0
static void initApis() {
  PT_initMEPTApi();
  ASF_initASFMEApi();
  ASC_initRunTime(INITIAL_TABLE_SIZE);
  PT_initAsFix2Api();
  PRS_initParsedRStoreApi();
  RS_initRStoreApi();
}
Exemple #3
0
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;
}