public bool ParseMatch(TokenReader tr, SyntaxTree.Node node) { if (tr.Peek()?.type == this) { tr.Next(); if (createNode) { node.AddChild(new SyntaxTree.Node(this, tr.Current.value)); } return(true); } return(false); }
public bool ParseMatch(TokenReader tr, SyntaxTree.Node node) { var n = createNode ? new SyntaxTree.Node(this, "") : node; for (int i = 0; i < patterns.Length; i++) { if (patterns[i].Match(tr, n)) { if (createNode) { node.AddChild(n); } return(true); } } return(false); }