scan.c

来自「SRI international 发布的OAA框架软件」· C语言 代码 · 共 2,986 行 · 第 1/5 页

C
2,986
字号
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5
};


static void act53()
{ 
		NLA = Eof;
	}


static void act54()
{ 
		NLA = 18;
    zzline++; zzmode(ACTIONS); zzmore();   
	}


static void act55()
{ 
		NLA = 19;
    zzmore();   
	}

static unsigned char shift5[257] = {
  0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 1, 3, 3, 2, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3
};


static void act56()
{ 
		NLA = Eof;
	}


static void act57()
{ 
		NLA = 20;
    zzline++; zzmode(START); zzskip();   
	}


static void act58()
{ 
		NLA = 21;
    zzskip();   
	}

static unsigned char shift6[257] = {
  0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 1, 3, 3, 2, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3
};


static void act59()
{ 
		NLA = Eof;
	}


static void act60()
{ 
		NLA = 22;
    zzmode(START); zzskip();   
	}


static void act61()
{ 
		NLA = 23;
    zzskip();   
	}


static void act62()
{ 
		NLA = 24;
    zzline++; zzskip();   
	}


static void act63()
{ 
		NLA = 25;
    zzskip();   
	}

static unsigned char shift7[257] = {
  0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 3, 5, 5, 4, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 1, 5, 5, 5, 5, 2, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5
};


static void act64()
{ 
		NLA = Eof;
	}


static void act65()
{ 
		NLA = 26;
    {
      RefVarRec *rf;
      zzskip();
      zzbegexpr[strlen(zzbegexpr)-1] = '\0';
      rf=refVarRec(zzbegexpr);
      list_add(&AllRefVars, rf);
      list_add(&RefVars, rf);
      zzmode(ACTIONS); zzmore(); zzreplstr("");
    }  
	}

static unsigned char shift8[257] = {
  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1
};


static void act66()
{ 
		NLA = Eof;
	}


static void act67()
{ 
		NLA = Action;
    /* these do not nest */
    zzmode(START);
    NLATEXT[0] = ' ';
    NLATEXT[1] = ' ';
    zzbegexpr[0] = ' ';
    zzbegexpr[1] = ' ';
    if ( zzbufovf ) {
      found_error = 1;
      err( eMsgd("action buffer overflow; size %d",ZZLEXBUFSIZE));
    }
	}


static void act68()
{ 
		NLA = PassAction;
    if ( topint() == ']' ) {
      popint();
      if ( istackempty() )	/* terminate action */
      {
        zzmode(START);
        NLATEXT[0] = ' ';
        zzbegexpr[0] = ' ';
        if ( zzbufovf ) {
          found_error = 1;
          err( eMsgd("parameter buffer overflow; size %d",ZZLEXBUFSIZE));
        }
      }
      else {
        /* terminate #[..] */
        zzreplstr(")");
        zzmore();
      }
    }
    else if ( topint() == '|' ) { /* end of simple [...] */
      popint();
      zzmore();
    }
    else zzmore();
	}


static void act69()
{ 
		NLA = 29;
    zzline++; zzmore();   
	}


static void act70()
{ 
		NLA = 30;
    zzmore();   
	}


static void act71()
{ 
		NLA = 31;
    
    if ( !(strcmp(zzbegexpr, "#ifdef")==0 ||
    strcmp(zzbegexpr, "#else")==0 ||
    strcmp(zzbegexpr, "#endif")==0 ||
    strcmp(zzbegexpr, "#ifndef")==0 ||
    strcmp(zzbegexpr, "#if")==0 ||
    strcmp(zzbegexpr, "#define")==0 ||
    strcmp(zzbegexpr, "#pragma")==0 ||
    strcmp(zzbegexpr, "#undef")==0 ||
    strcmp(zzbegexpr, "#import")==0 ||
    strcmp(zzbegexpr, "#line")==0 ||
    strcmp(zzbegexpr, "#include")==0 ||
    strcmp(zzbegexpr, "#error")==0) )
    {
      static char buf[100];
      if ( !transform ) {
        warn("#id used in nontransform mode; # ignored");
        sprintf(buf, "%s", zzbegexpr+1);
      }
      else {
        if ( CurRule==NULL )
        {warn("#id used in action outside of rule; ignored");}
        else if ( strcmp(zzbegexpr+1,CurRule)==0 )
        strcpy(buf, "(*_result)");
      }
      zzreplstr(buf);
    }
    zzmore();
	}


static void act72()
{ 
		NLA = 32;
    
    if ( GenCPP ) zzreplstr("new SORAST");
    else zzreplstr("ast_empty_node()");
    zzmore();
	}


static void act73()
{ 
		NLA = 33;
    zzreplstr("NULL"); zzmore();   
	}


static void act74()
{ 
		NLA = 34;
    
    pushint(']');
    if ( GenCPP ) zzreplstr("new SORAST(");
    else zzreplstr("ast_node(");
    zzmore();
	}


static void act75()
{ 
		NLA = 35;
    
    pushint('}');
    if ( GenCPP ) zzreplstr("PCCTS_AST::make(");
    else zzreplstr("ast_make(");
    zzmore();
	}


static void act76()
{ 
		NLA = 36;
    zzmore();   
	}


static void act77()
{ 
		NLA = 37;
    
    if ( istackempty() )
    zzmore();
    else if ( topint()==')' ) {
      popint();
    }
    else if ( topint()=='}' ) {
      popint();
      /* terminate #(..) */
      zzreplstr(", NULL)");
    }
    zzmore();
	}


static void act78()
{ 
		NLA = 38;
    
    pushint('|');	/* look for '|' to terminate simple [...] */
    zzmore();
	}


static void act79()
{ 
		NLA = 39;
    
    pushint(')');
    zzmore();
	}


static void act80()
{ 
		NLA = 40;
    zzreplstr("]");  zzmore();   
	}


static void act81()
{ 
		NLA = 41;
    zzreplstr(")");  zzmore();   
	}


static void act82()
{ 
		NLA = 42;
    zzreplstr(">");  zzmore();   
	}


static void act83()
{ 
		NLA = 43;
    zzmode(ACTION_CHARS); zzmore();  
	}


static void act84()
{ 
		NLA = 44;
    zzmode(ACTION_STRINGS); zzmore();  
	}


static void act85()
{ 
		NLA = 45;
    zzreplstr("#");  zzmore();   
	}


static void act86()
{ 
		NLA = 46;
    zzmore();   
	}


static void act87()
{ 
		NLA = 47;
    zzmore();   
	}


static void act88()
{ 
		NLA = 48;
    zzmode(ACTION_COMMENTS); zzmore();   
	}


static void act89()
{ 
		NLA = 49;
    err("Missing /*; found dangling */ in action"); zzmore();   
	}


static void act90()
{ 
		NLA = 50;
    zzmode(ACTION_CPP_COMMENTS); zzmore();   
	}


static void act91()
{ 
		NLA = 51;
    zzmode(REFVAR_SCARF); zzmore(); zzreplstr("");  
	}


static void act92()
{ 
		NLA = 52;
    
    zzmore(); if ( !GenCPP ) zzreplstr("_parser->");
	}


static void act93()
{ 
		NLA = 53;
    
    if ( (GenCPP && strcmp(zzbegexpr,"ast_scan(")==0) ||
    (!GenCPP && strcmp(zzbegexpr,"ast_scan(")==0) ) {
      char *args=scarf_to_end_of_func_call();
      zzreplstr(cvt_token_str(zzbegexpr, args));
      zzmore();
    }
    else { pushint(')'); zzmore(); }
	}


static void act94()
{ 
		NLA = 54;
    zzmore();   
	}


static void act95()
{ 
		NLA = 55;
    zzmore();   
	}

static unsigned char shift9[257] = {
  0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 3, 17, 17, 4, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 13, 5, 17, 17, 17, 
  12, 9, 10, 15, 17, 17, 17, 17, 14, 7, 
  7, 7, 7, 7, 7, 7, 7, 7, 7, 17, 
  17, 17, 17, 1, 17, 16, 6, 6, 6, 6, 
  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
  6, 6, 8, 11, 2, 17, 6, 17, 6, 6, 
  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
  6, 6, 6, 6, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 
  17, 17, 17, 17, 17, 17, 17
};


static void act96()
{ 
		NLA = Eof;
	}


static void act97()
{ 
		NLA = 93;
    zzmode(PARSE_ENUM_FILE); zzmore();   
	}


static void act98()
{ 
		NLA = 94;
    zzmore();   
	}


static void act99()
{ 
		NLA = 95;
    zzline++; zzmore();   
	}


static void act100()
{ 
		NLA = 96;
    zzmore();   
	}

static unsigned char shift10[257] = {
  0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 3, 5, 5, 4, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
  5, 5, 5, 1, 5, 5, 5, 5, 2, 5, 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?