/// <inheritdoc/> protected override ISqlNode OnChildNode(ISqlNode node) { if (node.NodeName.Equals("name_part")) { node = node.ChildNodes.FirstOrDefault(); } string text; if (node is IdentifierNode) { var idNode = (IdentifierNode) node; text = idNode.Text; } else if (node is SqlKeyNode) { text = ((SqlKeyNode) node).Text; if (!String.Equals(text, "*")) throw new SqlParseException(String.Format("Invalid object name part '{0}' provided.", text)); } else { throw new SqlParseException(String.Format("The node of type '{0}' is not allowed.", node.GetType())); } if (Name != null) { Name = String.Format("{0}.{1}", Name, text); } else { Name = text; } return base.OnChildNode(node); }
public bool AssertIsScalarExpression(ISqlNode parent, string name, ISqlNode child) { if (!AssertNotNull(parent, name, child)) { return(false); } var childType = child.GetType(); // TODO: Fix this if (!new[] { typeof(SqlNumberNode), typeof(SqlNullNode), typeof(SqlInfixOperationNode), typeof(SqlPrefixOperationNode), typeof(SqlStringNode), typeof(SqlIdentifierNode), typeof(SqlQualifiedIdentifierNode), typeof(SqlVariableNode) }.Contains(childType)) { return(AddError(parent, name, "Is not an acceptable scalar expression node")); } return(true); }
/// <inheritdoc/> protected override ISqlNode OnChildNode(ISqlNode node) { if (node.NodeName.Equals("name_part")) { node = node.ChildNodes.FirstOrDefault(); } string text; if (node is IdentifierNode) { var idNode = (IdentifierNode)node; text = idNode.Text; } else if (node is SqlKeyNode) { text = ((SqlKeyNode)node).Text; if (!String.Equals(text, "*")) { throw new SqlParseException(String.Format("Invalid object name part '{0}' provided.", text)); } } else { throw new SqlParseException(String.Format("The node of type '{0}' is not allowed.", node.GetType())); } if (Name != null) { Name = String.Format("{0}.{1}", Name, text); } else { Name = text; } return(base.OnChildNode(node)); }
public bool AddError(ISqlNode parent, string name, string message) { _errors.Add($"{parent.GetType().Name}.{name}: {message}"); return(false); }
public bool UnexpectedNodeType(ISqlNode parent, string name, ISqlNode child) { return(AddError(parent, name, $"{child.GetType().Name} is an unexpected node type")); }