fAutomat lexAcceptor; //текущий (активный) лексический акцептор
lexem Lexem=new lexem(); //текущая лексема
boolean ignoreLastWord; //флажок необходимости не возвращать (игнорировать) последнюю обнаруженную лексему
//Part_4_0: данные и методы из правил
int codeCharError = -20000;
Stack stack=new Stack();
String s;
//end of Part_4_0
//Part_4_1: мультиавтоматный ЛА
Stack lexStk=new Stack(); //стек индексов лексических акцепторов
fAutomat[] lexAcceptors=new fAutomat[4]; //массив лексических акцепторов
//Part_4_2: конструктор мультиавтоматного ЛА
public lexAnalyzer(textReader rdr){
faState state; //переменная для временного хранения состояния конечного автомата
//дальше идет создание автоматов, их состояний, выходящих из них дуг и запоминание всего этого в соответствующих местах
lexAcceptors[0]=new fAutomat(0,13,rdr);
state=new faState(8);
state.setArc(-1,"");
state.setArc(1,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя");
state.setArc(2,":");
state.setArc(3,"-\"=\"+*/");
state.setArc(4,"0123456789");
state.setArc(5," \r\n\u0009");
state.setArc(6,"\'");
state.setArc(7,"()[]{}");
lexAcceptors[0].setState(0,state);
state=new faState(3);
state.setArc(-3,"");
state.setArc(1,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя");
state.setArc(8,"0123456789");
lexAcceptors[0].setState(1,state);
state=new faState(2);
state.setArc(-4,"");
state.setArc(3,"-\":=\"+*/");
lexAcceptors[0].setState(2,state);
state=new faState(2);
state.setArc(-2,"");
state.setArc(3,"-\":=\"+*/");
lexAcceptors[0].setState(3,state);
state=new faState(3);
state.setArc(-5,"");
state.setArc(4,"0123456789");
state.setArc(9,",");
lexAcceptors[0].setState(4,state);
state=new faState(2);
state.setArc(-6,"");
state.setArc(5," \r\n\u0009");
lexAcceptors[0].setState(5,state);
state=new faState(1);
state.setArc(-7,"");
lexAcceptors[0].setState(6,state);
state=new faState(1);
state.setArc(-8,"");
lexAcceptors[0].setState(7,state);
state=new faState(2);
state.setArc(10,"0123456789");
state.setArc(11,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя");
lexAcceptors[0].setState(8,state);
state=new faState(1);
state.setArc(12,"0123456789");
lexAcceptors[0].setState(9,state);
state=new faState(3);
state.setArc(-9,"");
state.setArc(10,"0123456789");
state.setArc(11,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя");
lexAcceptors[0].setState(10,state);
state=new faState(2);
state.setArc(-9,"");
state.setArc(11,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя0123456789");
lexAcceptors[0].setState(11,state);
state=new faState(2);
state.setArc(-10,"");
state.setArc(12,"0123456789");
lexAcceptors[0].setState(12,state);
lexAcceptors[1]=new fAutomat(1,3,rdr);
state=new faState(2);
state.setArc(1,"");
state.setArc(2,"\'");
lexAcceptors[1].setState(0,state);
state=new faState(1);
state.setArc(-2,"");
lexAcceptors[1].setState(1,state);
state=new faState(1);
state.setArc(-3,"");
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.