return this.classes.get(this.classes.size()-1).AddField(Visible, Type, Name);
return false;
}
public boolean AddConstructor(boolean Visible, String Name){
if(this.classes.size()>0)
return this.classes.get(this.classes.size()-1).AddConstructor(Visible, Name);
return false;
};
public boolean AddConstructorParam(String t, String n){
if(this.classes.isEmpty()||this.Resolved(t)==false||this.Resolved(n))
return false;
return this.classes.get(this.classes.size()-1).AddConstructorParam(new Param(t,n));
};
public boolean EndConstructor(){
if(this.classes.size()>0)
return this.classes.get(this.classes.size()-1).EndConstructor();
return true;
};
public boolean AddMethod(boolean Visible, String Type, String Name){
if(this.classes.size()>0&& this.Resolved(Type)&& this.Resolved(Name)==false)
return this.classes.get(this.classes.size()-1).AddMethod(Visible,Type,Name);
return false;
};
public boolean AddMethodParam(String t, String n){
if(this.classes.isEmpty()||this.Resolved(t)==false||this.Resolved(n))
return false;
return this.classes.get(this.classes.size()-1).AddMethodParam(new Param(t,n));
};
class Param{
public String type;
public String name;
public Param(String Type, String Name ){
name=Name;
type=Type;
}
public String toString(){
return type+" "+name;
}
public boolean CompareToType(Param p){
return type.compareTo(p.type)==0;
}
public boolean CompareToName(Param p){
return name.compareTo(p.name)==0;
}
};
};
ClassTable ct=new ClassTable();
boolean MetCon;
class Tetrade{
String oper="";
String par1="";
String par2="";
String result="";
public Tetrade(){
};
public Tetrade(String Oper,String Par1,String Par2,String Result){
oper=Oper;
par1=Par1;
par2=Par2;
result=Result;
};
public String toString(){
return oper+" "+par1+" "+par2+" "+result ;
};
};
ArrayList<Tetrade> tetrades=new ArrayList<Tetrade>();
Stack funcCall=new Stack();
Stack idResolver=new Stack();
</data>
<rule for='Classes' leftPart='Classes'>
<rightPart>
<symbol>Class</symbol>
<symbol>Classes</symbol>
</rightPart>
<comment>Классы</comment>
</rule>
<rule for='Classes' leftPart='Classes'>
<rightPart>
<action>ti.put(0,0,0,0,"");
ti.put(0,0,0,0,"");
ti.put(0,0,0,0,"Постфиксная запись");
for(Object postFixObject: postFix){
ti.put(0,0,0,0,postFixObject.toString());}
ti.put(0,0,0,0,"");
ti.put(0,0,0,0,"");
ti.put(0,0,0,0,"Тетрады");
for(Tetrade t: tetrades){ ti.put(0,0,0,0,t.toString());
} ti.put(0,0,0,0,"");
ti.put(0,0,0,0,"");
ti.put(0,0,0,0,"Таблицы классов");
ti.put(0,0,0,0,ct.toString());
prog=prog+"public class Main { public static void main(java.lang.String[] args) {Program0Program pr=new Program0Program(); pr.Main0Main();}}";
ti.put(0,0,0,0,prog);</action>
</rightPart>
<comment>Конец разбора классов и вывод ПФЗ.</comment>
</rule>
<rule for='Classes' leftPart='Class'>
<rightPart>
<string>data</string>
<action>postFix.push(currentLexem.textOfWord);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.