docs: @Override
      protected String consumeIdentifier( DdlTokenStream tokens ) throws ParsingException {
          Position startPosition = tokens.nextPosition();
          String id = super.consumeIdentifier(tokens);
          if (!tokens.hasNext()) return id;
          Position nextPosition = tokens.nextPosition();
  
          while (((nextPosition.getIndexInContent() - startPosition.getIndexInContent() - id.length()) == 0)) {
              // allowed symbols in an identifier: underscore, dollar sign, pound sign, at sign
              if (tokens.matches(DdlTokenizer.SYMBOL)) {
                  if (tokens.matches('$') || tokens.matches('#') || tokens.matches('@')) {
                      id += tokens.consume(); // consume symbol
                  } else {
                      break; // not a valid ID symbol
                  }
              } else {
                  id += tokens.consume(); // consume text
              }
  
              nextPosition = tokens.nextPosition();
          }
  
          return id;
      }