Реферат: Интерпретатор 2
int lookup(char s[]) /* Возвращает положение в таблице символов для s */
{
int i;
for(i = lastentry; i > 0; i--)
if (strcmp(symtable[i].lexptr, s) == 0)
return i;
return 0;
}
int insert(char s[], int tok) /* Добавитьстрочкувтаблицусимволов */
{
int len;
len = strlen(s); /* strlen вычисляетдлинустроки */
if (lastentry + 1 >= SYMMAX)
error("symbol table full");
if (lastchar + len + 1 >= STRMAX)
error("lexemes array full");
lastentry++;
symtable[lastentry].token = tok;
symtable[lastentry].lexptr = &lexemes[lastchar + 1];
lastchar += len + 1;
strcpy(symtable[lastentry].lexptr, s);
return lastentry;
}
int insertcode(int tok,char s[],double value){ //Добавлениевтаблицукодов
int len;
len=strlen(s);
if(lastcode+1>=CODEMAX)
error("code table full");
if(lastlexgen+len+1>=STRMAX)