Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Esta clase realiza el Analisis Sintáctico
- */
- package analisis;
- /**
- * @author Julio Chinchilla
- */
- public class AnalisisSintactico {
- public String imp = "";
- TablaDeERRORES err = new TablaDeERRORES();
- public AnalisisSintactico (String rALexico) {
- AnalisisLexico an = new AnalisisLexico(rALexico);
- String lex = "";
- String cuant = "";
- int linea = 1;
- int A=0, B=0, C=0, D=0, E=0, F=0, X=0;
- if ( an.ERRORLexico == 0 ) {
- for ( int i = 0; i < an.allavesPorLinea.size(); i++ ) {
- String bd = String.valueOf( an.allavesPorLinea.get(i) );
- if ( this.esEncabezadoGeneral(bd)) {
- A++;
- lex = lex + "A";
- }
- else if ( this.esEncabezadoExpresionGen(bd)) {
- B++;
- lex = lex + "B";
- }
- else if ( this.esAlternador(bd)) {
- C++;
- lex = lex + "C";
- }
- else if ( this.esCuantificador(bd)) {
- D++;
- cuant = "D";
- }
- else if ( this.esEncabezadoExpresionEv(bd)) {
- E++;
- lex = lex + "E";
- }
- else if ( this.esEExpresionEv(bd)) {
- F++;
- lex = lex + "F";
- }
- else {
- X++;
- lex = lex + "X";
- ErrorEspecifico(bd, linea);
- }
- if (cuant.equals("D") && D == 1) {
- lex = lex + cuant;
- }
- linea++;
- }
- if ( lex.equals("ABCDEF")) {
- imp = imp + "COMPILACIÓN EXITOSA ! \n";
- }
- else {
- System.out.println(lex);
- ErrorGeneral(lex);
- }
- imp = imp + "Numero de lineas con código " + an.NumeroLineas + "\n";
- } else {
- imp = imp + an.errores;
- }
- }
- private void ErrorGeneral ( String lex ) {
- if ( err.ERRORgeneral.get(lex) != null) {
- imp = imp + err.ERRORgeneral.get(lex) + "\n";
- }
- else {
- imp = imp + " ERROR DE SINTAXIS! \n";
- }
- }
- private void ErrorEspecifico ( String analiza, int linea) {
- if ( err.ERRORespecifico.get(analiza) != null ) {
- imp = imp + "Error en linea "+ linea + " SUGERENCIA ! "+ err.ERRORespecifico.get(analiza).toString() + "\n";
- } else {
- imp = imp + "Error en linea "+ linea +"\n";
- }
- }
- private boolean esEncabezadoGeneral ( String analiza ) {
- boolean analizado = false;
- if (analiza.equals("abrcrd")) {
- analizado = true;
- }
- return analizado;
- }
- private boolean esEncabezadoExpresionGen ( String analiza ) {
- boolean analizado = false;
- if (analiza.equals("h")) {
- analizado = true;
- }
- return analizado;
- }
- private boolean esAlternador ( String analiza ) {
- boolean analizado = false;
- if (analiza.equals("kgbrcrdq")) {
- analizado = true;
- }
- return analizado;
- }
- private boolean esCuantificador ( String analiza ) {
- boolean analizado = false;
- if (analiza.equals("mgbpcrdq") || analiza.equals("mgbncrdq")
- || analiza.equals("mgbocrdq")) {
- analizado = true;
- }
- return analizado;
- }
- private boolean esEncabezadoExpresionEv ( String analiza ) {
- boolean analizado = false;
- if (analiza.equals("i")) {
- analizado = true;
- }
- return analizado;
- }
- private boolean esEExpresionEv ( String analiza ) {
- boolean analizado = false;
- if (analiza.equals("jgrq")) {
- analizado = true;
- }
- return analizado;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement