}
public ParseResult parse(@NotNull ParsePathNode parentNode, boolean optional, int depth, ParserContext context) throws ParseException {
ParserBuilder builder = context.getBuilder();
logBegin(builder, optional, depth);
TokenType tokenType = builder.getTokenType();
if (tokenType != null && !tokenType.isChameleon()){
if (tokenType.isIdentifier()) {
PsiBuilder.Marker marker = builder.mark(null);
builder.advanceLexer(parentNode);
return stepOut(marker, depth, ParseResultType.FULL_MATCH, 1, null, context);
}
else if (getElementType().isDefinition() || isSuppressibleReservedWord(tokenType, parentNode)) {