Example #1
0
        private ISqlNode ParseQualifiedIdentifier(ITokenizer t)
        {
            // ( <Qualifier> "." )? <Identifier>

            var next = t.Peek();

            if (!next.IsType(SqlTokenType.Identifier) && !next.IsType(SqlTokenType.Keyword))
            {
                return(null);
            }
            t.GetNext();
            if (!t.Peek().Is(SqlTokenType.Symbol, "."))
            {
                return(new SqlIdentifierNode(next));
            }
            t.GetNext();
            var qualifier  = new SqlIdentifierNode(next);
            var identifier = t.GetNext();

            return(new SqlQualifiedIdentifierNode
            {
                Location = qualifier.Location,
                Qualifier = qualifier,
                Identifier = identifier.Is(SqlTokenType.Symbol, "*") ? (ISqlNode) new SqlOperatorNode("*") : new SqlIdentifierNode(identifier)
            });
        }
 public ISqlNode VisitIdentifier(SqlIdentifierNode n)
 {
     Append("[", n.Name, "]");
     return(n);
 }
Example #3
0
 public override ISqlNode VisitIdentifier(SqlIdentifierNode n)
 {
     Current.GetInfoOrThrow(n.Name, n.Location);
     return(n);
 }
Example #4
0
 public virtual ISqlNode VisitIdentifier(SqlIdentifierNode n) => n;
 public override ISqlNode VisitIdentifier(SqlIdentifierNode n)
 {
     return(base.VisitIdentifier(n));
 }