Пример #1
0
        public Grammar ParseFile()
        {
            var resultGrammar = new Grammar();

            StreamReader fileStream = new StreamReader(fileName);

            string line;
            while ((line = fileStream.ReadLine()) != null) //Read file line by line
            {
                line = RemoveComments(line); //Remove comentarios da linha

                if (line.StartsWith("Terminais", true, null)) //Ler terminais
                {
                    line = fileStream.ReadLine();
                    resultGrammar.PopulateTerminals(RemoveComments(line));
                }
                else if (line.StartsWith("Variaveis", true, null)) //Ler variaveis
                {
                    line = fileStream.ReadLine();
                    resultGrammar.PopulateVariables(RemoveComments(line));
                }
                else if (line.StartsWith("Inicial", true, null)) //Ler inicial
                {
                    line = fileStream.ReadLine();
                    resultGrammar.SetStartingRule(RemoveComments(line));
                }

                else if (line.StartsWith("Regras", true, null))
                    continue;

                else //Ler regras
                {
                    resultGrammar.AddRule(line);
                }

            }

            fileStream.Close();
            return resultGrammar;
        }
Пример #2
0
        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
            fileName = openFileDialog1.FileName;
            var mInputFile = new FileParser(fileName);

            if(mInputFile.Exists())
                mGrammar = mInputFile.ParseFile();
        }