예제 #1
0
        public override syntax_tree_node BuildTreeInNormalMode(string FileName, string Text)
        {
            PT.Errors          = Errors;
            PT.CurrentFileName = FileName;

            Scanner scanner = new Scanner();

            scanner.SetSource(Text, 0);

            GPPGParser parser = new GPPGParser(scanner);

            if (!parser.Parse())
            {
                if (Errors.Count == 0)
                {
                    PT.AddError("Неопознанная синтаксическая ошибка!", null);
                }
            }

            return(parser.root);
        }
예제 #2
0
        public override syntax_tree_node BuildTreeInExprMode(string FileName, string Text)
        {
            PT.Errors          = Errors;
            PT.CurrentFileName = FileName;

            Scanner scanner = new Scanner();

            // Добавление в начало текста символа с кодом 1. Используется для парсинга выражений с последующим использованием в Intellisense
            Text = String.Concat((char)1, Text);
            scanner.SetSource(Text, 0);

            GPPGParser parser = new GPPGParser(scanner);

            if (!parser.Parse())
            {
                if (Errors.Count == 0)
                {
                    PT.AddError("Не разобрали выражение", null);
                }
            }

            return(parser.root);
        }