コード例 #1
0
        public override List <string> GetTodosOperadores()
        {
            List <string> nomeOperadores = base.GetTodosOperadores();

            List <Classe> classesNativas = RepositorioDeClassesOO.Instance().GetClasses();

            if (classesNativas != null)
            {
                for (int x = 0; x < classesNativas.Count; x++)
                {
                    for (int y = 0; y < classesNativas[x].GetOperadores().Count; y++)
                    {
                        string nome = classesNativas[x].GetOperadores()[y].nome;
                        if (nome != "")
                        {
                            int indexOperador = nomeOperadores.FindIndex(k => k.Equals(nome));
                            if (indexOperador == -1)
                            {
                                nomeOperadores.Add(nome);
                            }
                        }
                    }
                } // for x
            }
            return(nomeOperadores);
        }
コード例 #2
0
        }     // inicializaProducoesParaLinguagem()

        public Operador GetOperador(string nome, string nomeClasse)
        {
            Classe classe = RepositorioDeClassesOO.Instance().GetClasse(nomeClasse);

            if (classe != null)
            {
                List <Operador> operadores = classe.GetOperadores().FindAll(k => k.nome == nome);
                if ((operadores == null) || (operadores.Count == 0))
                {
                    return(null);
                }

                return(operadores[0]);
            }
            return(null);
        }
コード例 #3
0
        public override List <Operador> GetOperadores()
        {
            List <Operador> operadores = base.GetOperadores().ToList <Operador>();

            List <Classe> classes = RepositorioDeClassesOO.Instance().GetClasses();

            if ((classes != null) && (classes.Count > 0))
            {
                for (int x = 0; x < classes.Count; x++)
                {
                    List <Operador> operadoresDaClasse = classes[x].GetOperadores();
                    if ((operadoresDaClasse != null) && (operadoresDaClasse.Count > 0))
                    {
                        operadores.AddRange(operadoresDaClasse);
                    }
                } // for x
            }
            return(operadores);
        }
コード例 #4
0
        public static LinguagemOrquidea Instance()
        {
            if (linguagemOrquideaSingleton == null)
            {
                linguagemOrquideaSingleton = new LinguagemOrquidea();

                if (RepositorioDeClassesOO.Instance().GetClasse(typeof(Objeto).Name) == null)
                {
                    // importa as duas estruturas de dados da linguagem: Vetor, e Objeto.
                    ImportadorDeClasses importer = new ImportadorDeClasses();
                    importer.ImportAClassFromApplication(typeof(Vetor));
                    importer.ImportAClassFromApplication(typeof(Objeto));

                    /*
                     * List<Funcao> operadoresObjeto = new OperadoresImplementacao().GetImplentacao("parser.Objeto");
                     * List<Funcao> operadoresVetor = new OperadoresImplementacao().GetImplentacao("parse.Vetor");
                     */
                }
            }
            return(linguagemOrquideaSingleton);
        }
コード例 #5
0
        } // GetClasses()

        private void adicionaClasse(Classe c)
        {
            Classes.Add(c);
            RepositorioDeClassesOO.Instance().RegistraUmaClasse(c);
        } // adicionaClasse()