Пример #1
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;

            if (args.Length < 1)
            {
                Console.WriteLine("Null argument!");
                return;
            }

            string pathToFile = args[0];

            //List<Token> tokens = new List<Token>();

            if (!File.Exists(pathToFile))
            {
                Console.WriteLine("Incorrect file path:\"" + pathToFile + "\"");
                return;
            }

            using (StreamReader reader = new StreamReader(pathToFile))
            {
                Analyzer analyzer = new AnalyzerWithoutCommentary(reader);

                SyntaxisAnalyzer syn = new SyntaxisAnalyzer(analyzer);
                var tree             = syn.SyntaxisParse();
                Console.WriteLine(tree.ToString());
                //Analyzer analyzer = new Analyzer(reader);

                //while (analyzer.GetStatus() == AnalyzerStatus.OK)
                //{
                //    tokens.Add(analyzer.GetToken());
                //}

                //if (tokens[tokens.Count - 1] == null) tokens.RemoveAt(tokens.Count - 1);
            }

            //foreach (Token item in tokens)
            //{
            //    Console.WriteLine(item.ToString());
            //}

            //string d = "\n";
        }
Пример #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            List <Token> tokens = new List <Token>();

            using (StreamReader reader = new StreamReader(pathToProgrammFile))
            {
                Analyzer analyzer = new AnalyzerWithoutCommentary(reader);

                SyntaxisModule.SyntaxisAnalyzer syn = new SyntaxisModule.SyntaxisAnalyzer(analyzer);

                try
                {
                    var tree = syn.SyntaxisParse();
                    new Symantic().Check(tree);
                    textBox1.Text = tree.ToString();
                }
                catch (Exception ex)
                {
                    textBox1.Text = ex.Message;
                }
            }

            ///Часть проверки
            //StringBuilder SB = new StringBuilder();
            //StringBuilder SB2 = new StringBuilder();

            //foreach (Token item in tokens)
            //{
            //    SB.AppendLine(item.ToString());
            //}

            //using (StreamReader reader = new StreamReader(pathToPassFile))
            //{
            //    while (reader.Peek() > -1) SB2.AppendLine(reader.ReadLine());
            //}
            //char[] s1 = SB.ToString().ToCharArray();
            //char[] s2 = SB2.ToString().ToCharArray();

            ///Проверка на несовпадающий символ
            ////for (int i = 0; i < s1.Length; i++)
            ////{
            ////    if (s1[i] != s2[i])
            ////    {
            ////        SB.AppendLine("Несовпадение символа:" + s1[i].ToString() + " и " + s2[i].ToString());
            ////    }
            ////}

            ///Запись строки в файл
            //using (StreamWriter writer = new StreamWriter(pathToPassFile))
            //{
            //    writer.Write(SB.ToString());
            //}

            //if (SB.ToString().Equals(SB2.ToString()))
            //{
            //    SB.AppendLine("-----------------------");
            //    SB.AppendLine("Проверка прошла успешно");
            //}
            //else
            //{
            //    SB.AppendLine("-----------------------");
            //    SB.AppendLine("Проверка завершилась провалом!");
            //}

            //textBox1.Text = SB.ToString();
        }