Esempio n. 1
0
        public override TiposBases ValidateSemantic()
        {
            var identificador = Operando.ValidateSemantic();
            var tipo          = new YreferenciaTipo();

            tipo.tipoReferencia = identificador;
            return(tipo);
        }
        public override TiposBases ValidateSemantic()
        {
            var expresion = Operando.ValidateSemantic();

            if (expresion is BooleanTipo)
            {
                return(new BooleanTipo());
            }
            throw new SemanticoException("La expresion debe ser booleana" + Operando._TOKEN.Fila + " columna " + Operando._TOKEN.Columna);
        }
        public override TiposBases ValidateSemantic()
        {
            var operador = Operando.ValidateSemantic();

            if (operador is IntTipo || operador is CharTipo)
            {
                return(new IntTipo());
            }
            throw new Sintactico.SintanticoException(" no se puede negar el tipo " + operador + " " + Operando._TOKEN.Fila + " columna " + Operando._TOKEN.Columna);
        }
Esempio n. 4
0
        public override TiposBases ValidateSemantic()
        {
            var expresion = Operando.ValidateSemantic();

            if (expresion is IntTipo || expresion is FloatTipo)
            {
                return(expresion);
            }
            throw new SemanticoException("se esperaba un literal numerica " + Operando._TOKEN.Fila + " columna " + Operando._TOKEN.Columna);
        }
Esempio n. 5
0
        public override TiposBases ValidateSemantic()
        {
            var expresion = Operando.ValidateSemantic();

            if (expresion is StructTipo || expresion is ConstTipo || expresion is BooleanTipo || expresion is EnumTipo)
            {
                throw new Sintactico.SintanticoException("este tipo no puede incrementarse" + Operando._TOKEN.Fila + " columna " + Operando._TOKEN.Columna);
            }
            return(expresion);
        }
 public override TiposBases ValidateSemantic()
 {
     var expresion = Operando.ValidateSemantic();
     if (!(Operando is IdentificadorNode))
         throw new SemanticoException("no se puede autoIncrementarLiterales literales  fila " + _TOKEN.Fila + " columna " + _TOKEN.Columna);
     if (expresion is FloatTipo || expresion is IntTipo || expresion is CharTipo || expresion is EnumTipo)
        return expresion;
     throw new Sintactico.SintanticoException("este tipo no puede decrementarse fila" + Operando._TOKEN.Fila + " columna " + Operando._TOKEN.Columna);
     
 }
Esempio n. 7
0
        public override TiposBases ValidateSemantic()
        {
            var operador = Operando.ValidateSemantic();

            return(operador);
        }