Exemplo n.º 1
0
        public override syntax_tree_node BuildTreeInSpecialMode(string FileName, string Text)
        {
            Errors.Clear();
            localparserhelper = new GPPGParserHelper(Errors, Warnings, FileName);
            syntax_tree_node root = localparserhelper.Parse(Text);

            return(root);
        }
Exemplo n.º 2
0
        public override syntax_tree_node BuildTreeInStatementMode(string FileName, string Text)
        {
            Text = String.Concat("<<statement>>", Environment.NewLine, Text);
            localparserhelper = new GPPGParserHelper(Errors, Warnings, FileName);
            // localparser.parsertools.LineCorrection = -1;
            syntax_tree_node root = localparserhelper.Parse(Text);

            return(root as statement);
        }
Exemplo n.º 3
0
        public override syntax_tree_node BuildTreeInTypeExprMode(string FileName, string Text)
        {
            // LineCorrection = -1 не забыть
            Text = String.Concat("<<type>>", Environment.NewLine, Text);
            localparserhelper = new GPPGParserHelper(Errors, Warnings, FileName);
            // localparser.parsertools.LineCorrection = -1;
            syntax_tree_node root = localparserhelper.Parse(Text);

            return(root as expression);
        }
Exemplo n.º 4
0
        public override syntax_tree_node BuildTreeInNormalMode(string FileName, string Text, List <string> DefinesList = null)
        {
            Errors.Clear();
            Warnings.Clear();

            /*string[] file_names = new string[1];
             * file_names[0] = FileName;
             *
             * preprocessor2.Build(file_names, Errors, null);*/

            PreprocessorParserHelper preprocessor3 = new PreprocessorParserHelper(Errors, FileName);
            var b = preprocessor3.Parse(Text);

            if (Errors.Count > 0)
            {
                return(null);
            }

            localparserhelper             = new GPPGParserHelper(Errors, Warnings, FileName);
            localparserhelper.DefinesList = DefinesList;
            syntax_tree_node root = localparserhelper.Parse(Text);

            if (Errors.Count > 0)
            {
                return(null);
            }

            if (root != null && root is compilation_unit)
            {
                (root as compilation_unit).file_name = FileName;
            }

            /*if (preprocessor2.CompilerDirectives != null && preprocessor2.CompilerDirectives.Count != 0)
             *  CompilerDirectives.AddRange(preprocessor2.CompilerDirectives);*/

            if (preprocessor3.compilerDirectives != null && preprocessor3.compilerDirectives.Count != 0)
            {
                CompilerDirectives.AddRange(preprocessor3.compilerDirectives);
            }

            return(root);
        }
Exemplo n.º 5
0
        public override syntax_tree_node BuildTreeInExprMode(string FileName, string Text)
        {
            if (Text == string.Empty)
            {
                return(null);
            }
            // LineCorrection = -1 не забыть
            string origText = Text;

            Text = String.Concat("<<expression>>", Environment.NewLine, Text);
            localparserhelper = new GPPGParserHelper(Errors, Warnings, FileName);
            // localparser.parsertools.LineCorrection = -1;
            syntax_tree_node root = localparserhelper.Parse(Text);

            if (root == null && origText != null && origText.Contains("<"))
            {
                Errors.Clear();
                root = localparserhelper.Parse(String.Concat("<<expression>>", Environment.NewLine, origText.Replace("<", "&<")));
            }
            return(root as expression);
        }
Exemplo n.º 6
0
 public override syntax_tree_node BuildTreeInFormatterMode(string FileName, string Text)
 {
     Errors.Clear();
     localparserhelper = new GPPGParserHelper(Errors, FileName);
     localparserhelper.build_tree_for_formatter = true;
     syntax_tree_node root = localparserhelper.Parse(Text);
     return root;
 }
Exemplo n.º 7
0
 public override syntax_tree_node BuildTreeInSpecialMode(string FileName, string Text)
 {
     Errors.Clear();
     localparserhelper = new GPPGParserHelper(Errors, FileName);
     syntax_tree_node root = localparserhelper.Parse(Text);
     return root;
 }
Exemplo n.º 8
0
 public override syntax_tree_node BuildTreeInStatementMode(string FileName, string Text)
 {
     Text = String.Concat("<<statement>>", Environment.NewLine, Text);
     localparserhelper = new GPPGParserHelper(Errors, FileName);
     // localparser.parsertools.LineCorrection = -1;
     syntax_tree_node root = localparserhelper.Parse(Text);
     return root as expression;
 }
Exemplo n.º 9
0
        public override syntax_tree_node BuildTreeInNormalMode(string FileName, string Text)
        {
            Errors.Clear();

            /*string[] file_names = new string[1];
            file_names[0] = FileName;

            preprocessor2.Build(file_names, Errors, null);*/

            PreprocessorParserHelper preprocessor3 = new PreprocessorParserHelper(Errors, FileName);
            var b = preprocessor3.Parse(Text);
            
            if (Errors.Count > 0)
                return null;

            localparserhelper = new GPPGParserHelper(Errors, FileName);

            syntax_tree_node root = localparserhelper.Parse(Text);

            if (Errors.Count > 0)
                return null;

            if (root != null && root is compilation_unit)
                (root as compilation_unit).file_name = FileName;

            /*if (preprocessor2.CompilerDirectives != null && preprocessor2.CompilerDirectives.Count != 0)
                CompilerDirectives.AddRange(preprocessor2.CompilerDirectives);*/

            if (preprocessor3.compilerDirectives != null && preprocessor3.compilerDirectives.Count != 0)
                CompilerDirectives.AddRange(preprocessor3.compilerDirectives);

            return root;
        }