crear funcion para expresion regular

Iniciado por m@o_614, 30 Agosto 2014, 00:39 AM

0 Miembros y 1 Visitante están viendo este tema.

m@o_614

Saludos

Tengo las siguientes expresiones regulares:

M -> (M)
M -> n

estas dos me pueden generar cadenas como: ((((n)))) ó n

Tengo que diseñar una clase que se llame class Analizador Sintactico, para poder generar cualquier cadena que estas dos expresiones me permitan, ahorita ya hice una especie de pseudocodigo y creo que esta bien. Pero el problema es que yo sé que el analizador sintactico se asegura de que se tenga el mismo número de parentesis de abertura que de cierre, pero no estoy seguro de como lo hace


Código (java) [Seleccionar]
class Sintactico{
Lexico lexico = new Lexico();
int parentesis = 0;
void M(){
   if(lexicoSimbolo == 'n')
   {
       if(parentesis != 0)
          checarParentesis();
       else
  comprobar();
   }
   else if(lexicoSimbolo == '(')
   {
       parentesis++;
       M();
   }
   else
      error();
}

void checarParentesis(){
   int i = 1;
   while(i <= parentesis)
   {
       if(lexico.siguienteSimbolo() == ')' )
          i++;
       else
          error();
   }
}
}


que modificaciones le harian a este pseudocodigo para que sea más eficiente???

de antemano gracias