docs: protected String parseName( DdlTokenStream tokens ) {
          // Basically we want to construct a name that could have the form:
          // [schemaName].[tableName].[columnName]
          // NOTE: "[]" brackets are optional
          StringBuilder sb = new StringBuilder();
  
          if (tokens.matches('[')) {
              // We have the bracketed case, so assume all brackets
              while (true) {
  
                  tokens.consume('['); // [ bracket
                  sb.append(consumeIdentifier(tokens)); // name
                  tokens.consume(']'); // ] bracket
                  if (tokens.matches('.')) {
                      sb.append(tokens.consume()); // '.'
                  } else {
                      break;
                  }
              }
          } else {
  
              // We have the NON-bracketed case, so assume all brackets
              while (true) {
  
                  sb.append(consumeIdentifier(tokens)); // name
  
                  if (tokens.matches('.')) {
                      sb.append(tokens.consume()); // '.'
                  } else {
                      break;
                  }
  
              }
          }
  
          return sb.toString();
      }