Изучение конечных автоматов без памяти, способов определения КА – канонического, графового и табличного, методов построения недетерминированного КА по системе регулярных выражений, страница 3

   {-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,14},

   {-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,15,-2147483647,-2147483647,-2147483647,-2147483647},

   {-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,16,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647},

   {-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,-9,-9,13,13,13,13,13,13,13,13,13},

   {-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,17,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647},

   {-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,18,-2147483647,-2147483647},

   {-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,16,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10},

   {-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-1073741836,-11,-11,-11,-11,-11,-11},

   {-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-1073741835,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647} };

 private int[][] controlTable1={

   {-1,-1073741827,1},

   {-2,-2,1} };

 private int[][] controlTable2={

   {-1,-1073741827,1},

   {-2,-2,1} };

 private int[][] controlTable3={

   {-1,-1073741827,-1073741826} };

//Part_6_0 данные и методы из правил

Stack stack = new Stack();

class Record

 {

private int _index;

private String _text;

private boolean _isId;

private boolean _isConstBoolean;

private boolean _isConstSymbol;

private void _ResetType() {

_isId = false;

_isConstBoolean = false;

 _isConstSymbol = false;

}

public Record(String text)

 { _text = text; }

 public String GetType()

 {

String type = new String();

 if(_isId) type = "Id";

else if(_isConstBoolean)

type = "ConstBoolean";

 else if(_isConstSymbol) type = "ConstSymbol";

 else type = "Undefined";

 return type; }

public void IsId()

{

_ResetType();

 _isId = true;

}

public void IsConstBoolean()

{

_ResetType();

 _isConstBoolean = true;

 }

 public void IsConstSymbol()

{

 _ResetType();

 _isConstSymbol = true;

}

 public int GetIndex()

{ return _index; }

public String GetText() { return _text; }

 } // Конец класса 'Record'

class Table {

private int _size;

 private ArrayList<Record> _records;

 public Table()

{ _size = 0; _records = new ArrayList(); }

 public void Add(Record R)

{ if(this.Seach(R.GetText()) == null) _records.add(R); }

public Record Seach(String text)

{ for(Record r: _records)

 if(r.GetText().compareToIgnoreCase(text)==0)

return r; return null; }

 public String Info()

{

 String info = new String();

 info = info + "Id(";

for(Record r: _records)

 if(r.GetType().compareTo("Id") == 0) info = info + " " + r.GetText();

info = info + ") ConstBoolean("; for(Record r: _records)

 if(r.GetType().compareTo("ConstBoolean") == 0)

info = info + " " + r.GetText();

info = info + ") ConstSymbol("; for(Record r: _records)

 if(r.GetType().compareTo("ConstSymbol") == 0) info = info + " " + r.GetText();

info = info + ")";