Example #1
0
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);
}
Example #2
0
ATbool set_global_options(void)
{
  if(debugflag)                    SG_DEBUG_ON();
  if(verboseflag)                  SG_VERBOSE_ON();
  if(filterflag)                   SG_FILTER_ON();
  if(filter_associativityflag)     SG_FILTER_ASSOCIATIVITY_ON();
  if(filter_directeagernessflag)   SG_FILTER_DIRECTEAGERNESS_ON();
  if(filter_eagernessflag)         SG_FILTER_EAGERNESS_ON();
  if(filter_injectioncountflag)    SG_FILTER_INJECTIONCOUNT_ON();
  if(filter_priorityflag)          SG_FILTER_PRIORITY_ON();
  if(filter_rejectflag)            SG_FILTER_REJECT_ON();
  if(cycleflag)                    SG_CYCLE_ON();
  if(start_symbol)                 SG_STARTSYMBOL_ON();
  if(statisticsflag)               SG_SHOWSTAT_ON();
  if(outputflag)                   SG_OUTPUT_ON();
  if(asfix2meflag)                 SG_ASFIX2ME_ON();
  if(binaryflag)                   SG_BINARY_ON();
  if(ambiguityerrorflag)           SG_AMBIGUITY_ERROR_ON();

  if(!parse_table_name) {
    SG_DEBUG_OFF();
    SG_SHOWSTAT_OFF();
  }

  if(SG_STATISTICS) {
    SG_OpenLog(program_name, SG_DEBUG?".sglr-log":"sglr-stats.txt");
  }

  /*  Return whether a possibly runnable instantiation has been obtained...  */
  if(parse_table_name) {
    return ATtrue;
  }
  else {
    return ATfalse;
  }
}