public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { this.TipoDato = hijoASintetizar.TipoDato; double valor; double.TryParse(hijoASintetizar.Lexema, NumberStyles.Number, new CultureInfo("en-US"), out valor); if (valor > GlobalesCompilador.MAX_VALOR_NUMERO || double.IsPositiveInfinity(valor)) { throw new ErrorSemanticoException(new ErrorValorNumericoMuyGrande(GlobalesCompilador.MAX_VALOR_NUMERO)); } else { if (valor < GlobalesCompilador.MIN_VALOR_NUMERO || double.IsNegativeInfinity(valor)) { throw new ErrorSemanticoException(new ErrorValorNumericoMuyChico(GlobalesCompilador.MIN_VALOR_NUMERO)); } else { this.ValorConstanteNumerica = valor; } } this.Lexema = hijoASintetizar.Lexema; this.Gargar = hijoASintetizar.Gargar; this.NoEsAptaPasajeReferencia = true; }
public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { if (hijoASintetizar.ListaFirma != null) { this.ListaFirma.AddRange(hijoASintetizar.ListaFirma); } }
public NodoF(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { this.ListaFirma = new List <Firma>(); EsFirma = true; }
public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { this.Lexema = hijoASintetizar.Lexema; this.TipoDato = hijoASintetizar.TipoDato; this.Gargar = hijoASintetizar.Gargar; this.NoEsAptaPasajeReferencia = true; }
public NodoStart(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { this.ContextoActual = NodoTablaSimbolos.TipoContexto.Global; this.NombreContextoLocal = EnumUtils.stringValueOf(NodoTablaSimbolos.TipoContexto.Global); this.ProcPrincipalYaCreadoyCorrecto = false; this.ProcPrincipalCrearUnaVez = true; }
internal void ActualizarAtributos(NodoArbolSemantico nodo) { this.TablaSimbolos = nodo.TablaSimbolos; this.NombreContextoLocal = nodo.NombreContextoLocal; this.ProcPrincipalYaCreadoyCorrecto = nodo.ProcPrincipalYaCreadoyCorrecto; this.ProcPrincipalCrearUnaVez = nodo.ProcPrincipalCrearUnaVez; int i = this.hijosNodo.IndexOf(nodo); this.atributosCalculados[i] = true; this.hijosNodo[i] = nodo; }
public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { this.Lexema = hijoASintetizar.Lexema; this.TipoDato = hijoASintetizar.TipoDato; this.Gargar = hijoASintetizar.Gargar; this.NoEsAptaPasajeReferencia = true; if (Lexema.Length > GlobalesCompilador.MAX_LONG_CADENA) { throw new ErrorSemanticoException(new ErrorCantMaxCaracteresEnCadenaTexto(GlobalesCompilador.MAX_LONG_CADENA)); } }
public NodoArbolSemantico(NodoArbolSemantico nodoPadre, ElementoGramatica elem) { this.elemento = elem; this.padreNodo = nodoPadre; this.hijosNodo = new List <NodoArbolSemantico>(); inicializado = false; //Sintetizados this.TipoDato = NodoTablaSimbolos.TipoDeDato.Ninguno; this.Comparacion = TipoComparacion.None; this.EsFuncion = false; this.EsArreglo = false; this.Operacion = TipoOperatoria.Ninguna; this.Codigo = string.Empty; this.EsArregloEnParametro = false; this.ValorConstanteNumerica = double.MinValue; this.ListaElementosVisualizar = new List <string>(); this.LlamaProcs = false; this.ModificaParametros = false; this.TieneLecturas = false; this.AsignaParametros = false; this.UsaVariablesGlobales = false; //Heredados this.DeclaracionesPermitidas = TipoDeclaracionesPermitidas.Ninguno; this.EsFirma = false; this.EsPasajeParametrosAProcOFunc = false; if (nodoPadre != null) { this.EsConstante = nodoPadre.EsConstante; this.ContextoActual = nodoPadre.ContextoActual; this.TablaSimbolos = nodoPadre.TablaSimbolos; this.NombreContextoLocal = nodoPadre.NombreContextoLocal; this.ProcPrincipalYaCreadoyCorrecto = nodoPadre.ProcPrincipalYaCreadoyCorrecto; this.ProcPrincipalCrearUnaVez = nodoPadre.ProcPrincipalCrearUnaVez; this.DeclaracionesPermitidas = nodoPadre.DeclaracionesPermitidas; this.EsPasajeParametrosAProcOFunc = nodoPadre.EsPasajeParametrosAProcOFunc; } }
public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { this.TipoDato = hijoASintetizar.TipoDato; switch (hijoASintetizar.Lexema) { case "*": this.Operacion = TipoOperatoria.Multiplicacion; break; case "/": this.Operacion = TipoOperatoria.Division; break; } this.NoEsAptaPasajeReferencia = true; this.Gargar = hijoASintetizar.Gargar; }
public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { this.TipoDato = hijoASintetizar.TipoDato; switch (hijoASintetizar.Lexema) { case "+": case "++": this.Operacion = TipoOperatoria.Suma; break; case "-": case "--": this.Operacion = TipoOperatoria.Resta; break; case "&": this.Operacion = TipoOperatoria.Concatenacion; break; } this.NoEsAptaPasajeReferencia = true; this.Gargar = hijoASintetizar.Gargar; }
public NodoExprBooleanas(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { }
public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { //Falta hacer cosas con los arreglos aca. this.VariablesACrear.AddRange(hijoASintetizar.VariablesACrear); }
public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { this.TipoDato = hijoASintetizar.TipoDato; }
public NodoIdAsignacion(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { }
public NodoTerminal(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { inicializado = true; }
public NodoConstantes(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { this.EsConstante = true; this.DeclaracionesPermitidas = TipoDeclaracionesPermitidas.Constantes; }
public NodoOpMultDiv(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { }
public virtual void HeredarAtributosANodo(NodoArbolSemantico hijoAHeredar) { }
public NodoBloqueMientras(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { }
public virtual void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { }
public override void SintetizarAtributosANodo(NodoArbolSemantico nodoArbolSemantico) { }
public override void HeredarAtributosANodo(NodoArbolSemantico hijoAHeredar) { hijoAHeredar.ProcPrincipalYaCreadoyCorrecto = this.ProcPrincipalYaCreadoyCorrecto; hijoAHeredar.ProcPrincipalCrearUnaVez = this.ProcPrincipalCrearUnaVez; }
public NodoTipoDatoConArreglo(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { }
public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { this.ProcPrincipalYaCreadoyCorrecto = hijoASintetizar.ProcPrincipalYaCreadoyCorrecto; this.ProcPrincipalCrearUnaVez = hijoASintetizar.ProcPrincipalCrearUnaVez; }
public NodoIdent(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { this.VariablesACrear = new List <Variable>(); }
public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { this.Lexema = hijoASintetizar.Lexema; this.NombreContextoLocal = hijoASintetizar.Lexema; }
public NodoDeclaraciones(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { }
public NodoValorConst(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { }
public NodoLinea(NodoArbolSemantico nodoPadre, ElementoGramatica elem) : base(nodoPadre, elem) { }
public override void SintetizarAtributosANodo(NodoArbolSemantico hijoASintetizar) { this.TipoDato = hijoASintetizar.TipoDato; this.ValorConstanteNumerica = hijoASintetizar.ValorConstanteNumerica; this.ValorConstanteTexto = hijoASintetizar.Lexema; }