?? sentence.java
字號:
package Syntax;
//產(chǎn)生式類
public class Sentence {
private int rightCurrent=0;
private int look_ahead_current=0;
private int look_ahead_length=5;//產(chǎn)生式右端最大長度
private int rightLength=10;//產(chǎn)生式右端最大長度
private int left;//產(chǎn)生式左部字符的索引值
private int[] right;//產(chǎn)生式右部字符的索引值數(shù)組
private int dot_at=0;//產(chǎn)生式中的加點項位置
private int[] look_ahead;//向前搜索符集
private int increment=5;
public Sentence()
{
right=new int[rightLength];
look_ahead=new int[look_ahead_length];
for(int i=0;i<rightLength;i++)
{
right[i]=-1;
}
for(int i=0;i<look_ahead_length;i++)
{
look_ahead[i]=-1;
}
}
private void increase_right()
{
int temp=rightLength;
rightLength+=increment;
int[] r=new int[rightLength];
for(int i=0;i<temp;i++)
{
r[i]=right[i];
}
right=r;
}
private void increase_look_ahead()
{
int temp=look_ahead_length;
look_ahead_length+=increment;
int[] l=new int[look_ahead_length];
for(int i=0;i<temp;i++)
{
l[i]=look_ahead[i];
}
look_ahead=l;
}
public boolean check()
{
return true;
}
public void setLeft(int i)
{
this.left=i;
}
public int getLeft()
{
return this.left;
}
public void setRight(int i)
{
if(rightCurrent==rightLength)increase_right();
right[rightCurrent++]=i;
}
public int[] getRight()
{
return this.right;
}
public int getRight(int i)
{
return this.right[i];
}
public void move_dot()//移動加點項
{
dot_at++;
}
public int getDot()//獲得點位置
{
return dot_at;
}
public void add_look_ahead(int i)
{
if(look_ahead_current==look_ahead_length)increase_look_ahead();
look_ahead[look_ahead_current++]=i;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -