Foro de elhacker.net

Programación => Java => Mensaje iniciado por: m@o_614 en 30 Agosto 2014, 00:39 am



Título: crear funcion para expresion regular
Publicado por: m@o_614 en 30 Agosto 2014, 00:39 am
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
  1. class Sintactico{
  2. Lexico lexico = new Lexico();
  3. int parentesis = 0;
  4. void M(){
  5.   if(lexicoSimbolo == 'n')
  6.   {
  7.       if(parentesis != 0)
  8.          checarParentesis();
  9.       else
  10.  comprobar();
  11.   }
  12.   else if(lexicoSimbolo == '(')
  13.   {
  14.       parentesis++;
  15.       M();
  16.   }
  17.   else
  18.      error();
  19. }
  20.  
  21. void checarParentesis(){
  22.   int i = 1;
  23.   while(i <= parentesis)
  24.   {
  25.       if(lexico.siguienteSimbolo() == ')' )
  26.          i++;
  27.       else
  28.          error();
  29.   }
  30. }
  31. }

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

de antemano gracias