Beispiel #1
0
//------------------------------------------------------------------------------
int lookup(int *typeOfObject)
{
  int i;
  gettoken(yytext, sizeof yytext);

  if (!strnicmp(yytext,"reg",3) && strlen(yytext) == 5 && isdigit(yytext[3]) && isdigit(yytext[4]) && (i=atoi(yytext+3))>=0 && i<100)
  {
    *typeOfObject=IDENTIFIER;
    return i+EVAL_MAX_VARS;
  }

  for (i=0;i<EVAL_MAX_VARS;i++)
    if (!strnicmp(varTable[i].name, yytext,sizeof(varTable[i].name)))
    {
      *typeOfObject = IDENTIFIER;
      return i;
    }

  for (i=0;getFunctionFromTable(i);i++)
  {
    functionType *f=getFunctionFromTable(i);
    if (!strcmpi(f->name, yytext))
    {
      *typeOfObject = objectId(f->nParams);
      return i;
    }
  }
  *typeOfObject = IDENTIFIER;
  setLastVar();
  i = setVar(-1, 0);
  return i;
}
Beispiel #2
0
//------------------------------------------------------------------------------
int lookup(int *typeOfObject)
{
  int i;
  gettoken(yytext, sizeof yytext);
  for (i=0;i<EVAL_MAX_VARS;i++)
    if (!strcmpi(varTable[i].name, yytext))
    {
      *typeOfObject = IDENTIFIER;
      return i;
    }
  for (i=0;i<sizeof(fnTable)/sizeof(functionType);i++)
  {
    if (!strcmpi(fnTable[i].name, yytext))
    {
      *typeOfObject = objectId(fnTable[i].nParams);
      return i;
    }
  }
  *typeOfObject = IDENTIFIER;
  setLastVar();
  i = setVar(-1, 0);
  //(*errPtr)++;
  return i;
}