예제 #1
0
        public Nodo repeticion()
        {
            Nodo temp = new Nodo(tokenActual);

            comprobar(token.Type.DO);

            Nodo sentencias = new Nodo();

            sentencias.setLexema("Sentencias");
            sentencias.setLinea(tokenActual.getLinea());
            sentencias.setTipoToken(token.Type.SENTENCIAS);
            temp.hijos[0]       = sentencias;
            sentencias.hijos[0] = bloque();

            comprobar(token.Type.UNTIL);
            comprobar(token.Type.LPAREN);

            Nodo condicion = new Nodo();

            condicion.setLexema("Condicion");
            condicion.setLinea(tokenActual.getLinea());
            condicion.setTipoToken(token.Type.CONDICION);
            temp.hijos[1]      = condicion;
            condicion.hijos[0] = bexpresion();
            comprobar(token.Type.RPAREN);
            comprobar(token.Type.SEMI);
            return(temp);
        }
예제 #2
0
        public Nodo asignacion()
        {
            Nodo temp = new Nodo();

            temp.setLexema("Asignacion");
            temp.setLinea(tokenActual.getLinea());
            temp.hijos[0] = new Nodo(tokenActual);
            temp.setTipoToken(token.Type.ASIGNACION);

            comprobar(token.Type.ID);
            comprobar(token.Type.ASIGNACION);
            temp.hijos[1] = bexpresion();
            comprobar(token.Type.SEMI);
            return(temp);
        }
예제 #3
0
        public Nodo seleccion()
        {
            Nodo temp = new Nodo(tokenActual);

            comprobar(token.Type.IF);
            comprobar(token.Type.LPAREN);

            Nodo condicion = new Nodo();

            condicion.setLexema("Condicion");
            condicion.setLinea(tokenActual.getLinea());
            condicion.setTipoToken(token.Type.CONDICION);

            temp.hijos[0]      = condicion;
            condicion.hijos[0] = bexpresion();

            comprobar(token.Type.RPAREN);

            Nodo then = new Nodo(tokenActual);

            comprobar(token.Type.THEN);


            temp.hijos[1] = then;
            then.hijos[0] = bloque();

            if (tokenActual.getTipoToken() == token.Type.ELSE)
            {
                Nodo n_else = new Nodo(tokenActual);
                comprobar(token.Type.ELSE);
                temp.hijos[2]   = n_else;
                n_else.hijos[0] = bloque();
            }
            comprobar(token.Type.FI);
            return(temp);
        }