inpTxt.style.width=document.body.offsetWidth-40;
if(document.body.offsetHeight>500)
inpTxt.style.height=document.body.offsetHeight-400;
}
--></script>
<script for=window event=onload><!--
inpTxt.style.visibility="visible"
tst.style.display="block"
rez.style.display="block"
tresize();
--></script>
<script for=window event=onresize><!--
tresize();
--></script>
<!-- end of Part_8 --><%@page contentType="text/html; charset=Windows-1251"%>
<%@page import="AuxObjects.*"%>
<%@page import="lexAcceptor.*"%>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%>
<%
//Построено 03.10.2010 19:00:21 по исходному файлу/шаблону mainframe2.xml/lexAsTableSyntAsManySA_to_jsp
//end of Part_1
//Part_2: определения используемых классов
//enf of Part_2
//Part_3: глобальные переменные
final TraceInfo ti=new TraceInfo();
//end of Part_3
//Part_4: лексический анализатор
//Part_4_1: мультиавтоматный ЛА
class fAutomat extends fAutomatAsMTable{
public fAutomat(int no,charToIndex cToI,int[][] ctlTbl,textReader tr){
super(no,cToI,ctlTbl,tr);
}
public fAutomat(charToIndex cToI,int[][] ctlTbl,textReader tr){
super(cToI,ctlTbl,tr);
}
}
//Part_4_1: мультиавтоматный ЛА
class lexAnalyzer{
Stack lexStk=new Stack(); //стек для хранения индексов лексических акцепторов
private fAutomat[] lexAcceptors=new fAutomat[4]; //массив лексических акцепторов
private fAutomat lexAcceptor; //текущий (активный) лексический акцептор
private textReader inp; //входной поток литер
private boolean ignoreLastWord; //флажок необходимости не возвращать (игнорировать) последнюю обнаруженную лексему
private lexem Lexem; //лексема
//набор транслитераторов
private charToIndex charToI0=new charToIndex();
private charToIndex charToI1=new charToIndex();
private charToIndex charToI2=new charToIndex();
private charToIndex charToI3=new charToIndex();
//набор управляющих таблиц
private int[][] controlTable0={
{-1,5,3,-1073741831,-1073741832,-2,4,2,1},
{-3,-3,-3,-3,-3,-3,6,-3,1},
{-4,-4,3,-4,-4,-4,-4,3,-4},
{-2,-2,3,-2,-2,-2,-2,3,-2},
{-5,-5,-5,-5,-5,7,4,-5,-5},
{-6,5,-6,-6,-6,-6,-6,-6,-6},
{-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,8,-2147483647,9},
{-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,10,-2147483647,-2147483647},
{-9,-9,-9,-9,-9,-9,8,-9,9},
{-9,-9,-9,-9,-9,-9,9,-9,9},
{-10,-10,-10,-10,-10,-10,10,-10,-10} };
private int[][] controlTable1={
{-1,-1073741827,-1073741826} };
private int[][] controlTable2={
{-1,-1073741826} };
private int[][] controlTable3={
{-1,-1073741828,1,-1073741827},
{-2,-2,1,-2} };
//Part_6_0 данные и методы из правил
int codeCharError = -20000;
Stack stack=new Stack();
String s;
//end of Part_6_0
//Part_4_2: конструктор мультиавтоматного ЛА
public lexAnalyzer(textReader rdr){
inp=rdr; //запомним указатель входного потока
//далее для каждого автомата создадим требуемые совокупности диапазонов литер
charToI0.addRange('\u0009','\n',1);
charToI0.addRange('\r','\r',1);
charToI0.addRange(' ',' ',1);
charToI0.addRange('\"','\"',2);
charToI0.addRange('*','+',2);
charToI0.addRange('-','-',2);
charToI0.addRange('/','/',2);
charToI0.addRange('=','=',2);
charToI0.addRange('\'','\'',3);
charToI0.addRange('(',')',4);
charToI0.addRange('[','[',4);
charToI0.addRange(']',']',4);
charToI0.addRange('{','{',4);
charToI0.addRange('}','}',4);
charToI0.addRange(',',',',5);
charToI0.addRange('0','9',6);
charToI0.addRange(':',':',7);
charToI0.addRange('A','Z',8);
charToI0.addRange('a','z',8);
charToI0.addRange('А','я',8);
charToI1.addRange('\'','\'',1);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.