Пример #1
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            outputFloaty.Show();
            showMessage = !showMessage;

            tvParseTree.Nodes.Clear();
            Scanner scanner = new Scanner();
            //Parser parser = new Parser(scanner, new GrammarTree());
            Parser parser = new Parser(scanner);

            ParseTree tree = parser.Parse(codeEditorControl1.Document.Text);
            //object treeinstance = parsertype.InvokeMember("Parse", BindingFlags.InvokeMethod, null, parser, new object[] { input });
            //IParseTree itree = treeinstance as IParseTree;
            //int a = 0;
            //foreach (ParseError err in tree.Errors)
            //{

            //    statusError.Text = String.Format("Line: {0,3}, Column: {1,3} : {2}", err.Line, err.Column, err.Message);
            //    a++;
            //    break;
            //}
            //if (a == 0)
            //    statusError.Text = string.Format("No Errors Found.");

            //CompilerResult result = new CompilerResult();
            if (tree.Errors.Count > 0)
            {
                foreach (ParseError err in tree.Errors)
                {

                    statusError.Text = String.Format("Line: {0,3}, Column: {1,3} : {2}", err.Line, err.Column, err.Message);
                    break;
                }
            }
            else
                statusError.Text = string.Format("No Errors Found.");

            ParseTreeViewer.Populate(tvParseTree, tree);
        }
Пример #2
0
 public Parser(Scanner scanner)
 {
     this.scanner = scanner;
 }