Реферат: Интерпретатор 2

}

}

void LabelPush(int n)// Добавить метку в стек

{

LabelStack[LabelCnt++]=n;

}

int LabelPop(void)// Извлечь метку из стека

{

LabelCnt--;

return LabelStack[LabelCnt];

}

int match(int t)//процедура переходит к следующему входному токену, если ее аргумент t совпадает со сканируемым символом.

{

if(lookahead==t)// Если t совпадает со сканируемым словом, то

lookahead=lexan();// Считать следующее слово

else error("syntax error");// Иначе - вывод ошибки, выход

return 0;

}


symbol.c

#include "global.h"

#defineSTRMAX 1000 /* Размер массива лексем */

#define SYMMAX 1000 /* Размер таблицы символов */

#define CODEMAX 1000/* Размер таблицы кодов */

char lexemes[STRMAX];

int lastchar = -1; /* Последняя использованная позиция в lexemes */

struct entry symtable[SYMMAX];

int lastentry = 0; // Последняя использованная позиция в таблице символов

char lexgen[STRMAX];

int lastlexgen = -1;

struct code codetable[CODEMAX];

К-во Просмотров: 1041
Бесплатно скачать Реферат: Интерпретатор 2