예제 #1
0
        public NodoF(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
            : base(nodoPadre, elem)
        {
            this.ListaFirma = new List <Firma>();

            EsFirma = true;
        }
예제 #2
0
 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;
 }
        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;
            }
        }
예제 #4
0
 public NodoVariablesIni(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
     this.EsConstante             = false;
     this.DeclaracionesPermitidas = TipoDeclaracionesPermitidas.Variables;
 }
예제 #5
0
 public NodoOpSumRes(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #6
0
 public NodoExprBooleanas(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #7
0
 public NodoIdent(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
     this.VariablesACrear = new  List <Variable>();
 }
예제 #8
0
 public NodoIdAsignacion(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
 public NodoBloqueMientras(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #10
0
 public NodoConstantes(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
     this.EsConstante             = true;
     this.DeclaracionesPermitidas = TipoDeclaracionesPermitidas.Constantes;
 }
예제 #11
0
 public NodoMaxArregloDec(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #12
0
 public NodoMostrarOp(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #13
0
 public NodoBloqueSiCont(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
     //Aca no hago nada con los labels, se hace todo en el padre
 }
예제 #14
0
 public NodoExprProc(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
     this.ListaFirma = new List <Firma>();
 }
예제 #15
0
 public void InsertarElemento(ElementoGramatica elem)
 {
     this.elementosPila.Add(elem);
     //this.elementosPila.Insert(this.elementosPila.Count - 1, elem);
 }
예제 #16
0
 public NodoValorConst(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #17
0
 public NodoReferencia(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #18
0
 public NodoOpMultDiv(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #19
0
 public NodoLlamadaProc(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
     this.ListaFirma = new List <Firma>();
     this.LlamaProcs = true;
 }
예제 #20
0
 public NodoTerminal(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
     inicializado = true;
 }
예제 #21
0
 public NodoProcedimientos(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
     this.ContextoActual = NodoTablaSimbolos.TipoContexto.Local;
 }
예제 #22
0
 public NodoTipoDatoConArreglo(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #23
0
 public NodoExprProced(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
     this.ListaFirma = new List <Firma>();
     this.EsPasajeParametrosAProcOFunc = true;
 }
예제 #24
0
 public NodoDeclaraciones(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #25
0
 public NodoLectura(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
     this.TieneLecturas = true;
 }
예제 #26
0
 public NodoLinea(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }
예제 #27
0
 public NodoVisualizar(NodoArbolSemantico nodoPadre, ElementoGramatica elem)
     : base(nodoPadre, elem)
 {
 }