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; } }
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; } }
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); }
public abstract bool Match(Parser parser);