示例#1
0
        private void addToken(Token.TIPO tipo, int fila, int columna)
        {
            Token token = new Token(listaTokens.Count + 1, auxLex, fila, columna, tipo);

            listaTokens.Add(token);
            auxLex = "";
        }
示例#2
0
 public void validarToken(int linea, int columna, Token.TIPO tipo)
 {
     tokens.Add(new Token(linea, columna, token, tipo));
     token  = "";
     estado = 0;
     i--;
 }
示例#3
0
 public Movimiento(string id, Token.TIPO tipo)
 {
     this.id   = id;
     this.tipo = tipo;
     mueve     = new List <int>();
     edomov    = new EstadoAFD(-1);
 }
示例#4
0
 public void validarError(Token.TIPO tipo, int linea, int columna)
 {
     errores.Add(new Token(linea, columna, token, tipo));
     token  = "";
     estado = 0;
     mal    = true;
     i--;
 }
示例#5
0
        public SubAFN crearAFN(Stack <Object[]> p, Stack <object[]> simbolos)
        {
            Stack <SubAFN> pila = new Stack <SubAFN>();

            while (p.Count != 0)
            {
                Object[]   simbolo = p.Pop();
                Token.TIPO tipo    = (Token.TIPO)simbolo[1];
                switch (tipo)
                {
                case Token.TIPO.CADENA:
                case Token.TIPO.TODO:
                case Token.TIPO.CONJ:
                case Token.TIPO.TAB:
                case Token.TIPO.ENTER:
                case Token.TIPO.COMILLA:
                case Token.TIPO.APOSTROFE:
                    simbolos.Push(simbolo);
                    pila.Push(this.crearBasico((string)simbolo[0]));
                    break;

                case Token.TIPO.CONCATENACION:
                    pila.Push(this.crearConcatenacion(pila.Pop(), pila.Pop()));
                    break;

                case Token.TIPO.OR:
                    pila.Push(this.crearOr(pila.Pop(), pila.Pop()));
                    break;

                case Token.TIPO.CERRADURAKLEENE:
                    pila.Push(this.crearKleene(pila.Pop()));
                    break;

                case Token.TIPO.CERRADURAPOSITIVA:
                    pila.Push(this.crearPositiva(pila.Pop()));
                    break;

                case Token.TIPO.INTERROGACION:
                    pila.Push(this.crearUnaoNinguna(pila.Pop()));
                    break;
                }
            }
            return(pila.Peek());
        }