예제 #1
0
 public Funcao(string nome, int tamanho, TabelaSimbolos variaveis, string label)
 {
     this.nome      = nome;
     this.tamanho   = tamanho;
     this.variaveis = variaveis;
     this.label     = label;
 }
예제 #2
0
        public TabelaSimbolos RetornaVariaveisGlobais()
        {
            TabelaSimbolos escopo = new TabelaSimbolos();

            foreach (var par in Tabela)
            {
                if (par.Value.nivel == 0 && par.Value.classe != Simbolo.Classe.funcao)
                {
                    escopo.Insere(par.Value);
                }
            }

            return(escopo);
        }
예제 #3
0
        public TabelaSimbolos RetornaEscopo(int nivel)
        {
            TabelaSimbolos escopo = new TabelaSimbolos();

            foreach (var par in Tabela)
            {
                if (par.Value.nivel == nivel)
                {
                    escopo.Insere(par.Value);
                }
            }

            return(escopo);
        }
예제 #4
0
        public void Insere(string nome_funcao, TabelaSimbolos escopo)
        {
            Funcao temp = new Funcao(nome_funcao, escopo.RetornaTamanho(), escopo, labels.GerarLabelFuncao());

            Escopos.Add(nome_funcao, temp);
        }