| <#-- Licensed to the Apache Software Foundation (ASF) under one or more contributor |
| license agreements. See the NOTICE file distributed with this work for additional |
| information regarding copyright ownership. The ASF licenses this file to |
| You under the Apache License, Version 2.0 (the "License"); you may not use |
| this file except in compliance with the License. You may obtain a copy of |
| the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required |
| by applicable law or agreed to in writing, software distributed under the |
| License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS |
| OF ANY KIND, either express or implied. See the License for the specific |
| language governing permissions and limitations under the License. --> |
| /** |
| * Parses a Drill compound identifier. |
| */ |
| SqlIdentifier CompoundIdentifier() : |
| { |
| DrillCompoundIdentifier.Builder builder = DrillCompoundIdentifier.newBuilder(); |
| String p; |
| int index; |
| } |
| { |
| p = Identifier() |
| { |
| builder.addString(p, getPos()); |
| } |
| ( |
| ( |
| <DOT> |
| ( |
| p = Identifier() { |
| builder.addString(p, getPos()); |
| } |
| | |
| <STAR> { |
| builder.addString("*", getPos()); |
| } |
| ) |
| ) |
| | |
| ( |
| <LBRACKET> |
| index = UnsignedIntLiteral() |
| <RBRACKET> |
| { |
| builder.addIndex(index, getPos()); |
| } |
| ) |
| ) * |
| { |
| return builder.build(); |
| } |
| } |