public class AnalizzatoreLessicale{
private final static int s0=0;
private final static int s1=1;
private final static int s2=2;
...
privete final static int sn=n;
private int statoCorrente;
public AnalizzatoreLessicale(){
statoCorrente=s0;
}
privete boolean isStatoFinale(){
return statoCorrente==statofinale;
}
private boolean handler(String n){
boolean error=false;
switch(statoCorrente){
case s0:
if(n.equals("nome")){
statoCorrente=s1;
}
else{
error=true;
}
case s1:
if(n.equals(",(virgola)")){
statoCorrente=s2;
}
else{
error=true;
}
case s2:
...(sempre la solita solfa, basta guardare l'automa)
public boolean isMember(String frase){
StringTokenizer st=new StringTokenizer(frase);
boolean error=false;
while(st.hasMoreTokens()){
String token=st.nextToken();
error=handler(token);
}
if(!st.hasMoreTokens()&&error==false&&isFinalStatu s()==true){
return true;
}
else{
return false;
}
}