Beispiel #1
0
        public override syntax_tree_node BuildTreeInExprMode(string FileName, string Text)
        {
            PT.Errors          = Errors;
            PT.CurrentFileName = FileName;

            Scanner scanner = new Scanner();

            Text = String.Concat((char)1, Text);
            scanner.SetSource(Text, 0);

            GPPGParser parser = new GPPGParser(scanner);

            parser._units.Add(new GPPGParser.unit_data());
            parser.unit_number++;

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

            return(parser.root);
        }
Beispiel #2
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);

            parser._units.Add(new GPPGParser.unit_data());
            parser.unit_number++;

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

            return(parser.root);
        }