Пример #1
0
        public override sealed bool Match(Parser parser)
        {
            if (parser.Code.Length >= parser.Pos + Pattern.Length &&
                parser.Comparer.Compare(parser.Code.Substring(parser.Pos, Pattern.Length), Pattern) == 0)
            {
                this.Value = Pattern;
                parser.GetLineCol(out pos, out line, out col);
                parser.Advance(Pattern.Length);

                return true;
            }
            else
            {
                return false;
            }
        }
Пример #2
0
        public override sealed bool Match(Parser parser)
        {
            Match m = this.Pattern.Match(parser.Code, parser.Pos);

            // Exclude keywords from matches
            if (m.Success && !parser.Keywords.Contains(m.Value))
            {
                Value = m.Value;
                parser.GetLineCol(out pos, out line, out col);
                parser.Advance(m.Length);

                return true;
            }
            else
            {
                return false;
            }
        }
Пример #3
0
        private void toolbuttonParse_Click(object sender, EventArgs e)
        {
            DateTime start = DateTime.Now;

            try
            {
                // *** TODO: load query factory type from registry
                //queryFactory = new Jhu.SkyQuery.Jobs.Query.XMatchQueryFactory();
                queryFactory = new Jhu.Graywulf.Jobs.Query.SqlQueryFactory();

                Jhu.Graywulf.ParserLib.Parser parser = queryFactory.CreateParser();

                rootNode = (Node)parser.Execute(sql.Text);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            RefreshNodeTree(null, rootNode);
            parsed.Text = Jhu.Graywulf.SqlParser.SqlCodeGen.SqlServerCodeGenerator.GetCode(rootNode, false);
        }
Пример #4
0
 public abstract bool Match(Parser parser);