39 строки
875 Б
Java
39 строки
875 Б
Java
import static java.lang.Character.isUpperCase;
|
|
|
|
public class Symbole {
|
|
private boolean terminal;
|
|
private boolean epsilon;
|
|
private String value;
|
|
|
|
public Symbole(String value) {
|
|
this.value = value;
|
|
if (this.value.isEmpty()) {
|
|
this.terminal = false;
|
|
this.epsilon = true;
|
|
} else {
|
|
this.epsilon = false;
|
|
this.terminal = !isUpperCase(this.value.charAt(0));
|
|
}
|
|
}
|
|
|
|
public boolean isTerminal() {
|
|
return terminal;
|
|
}
|
|
|
|
public boolean isEpsilon() {
|
|
return epsilon;
|
|
}
|
|
|
|
public String getValue() {
|
|
return value;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "Symbole{" +
|
|
"terminal=" + terminal +
|
|
", epsilon=" + epsilon +
|
|
", value='" + value + '\'' +
|
|
'}';
|
|
}
|
|
}
|