IElementType (int indent) { assert getTokenType() == QUESTION; int indentAddition = getShorthandIndentAddition(); advanceLexer(); if (!myStopTokensStack.isEmpty() && myStopTokensStack.peek() == HASH_STOP_TOKENS // This means we're inside some hash && getTokenType() == SCALAR_KEY) { parseScalarKeyValue(indent); } else { myStopTokensStack.add(TokenSet.create(COLON)); eolSeen = false; parseBlockNode(indent + indentAddition, false); myStopTokensStack.pop(); passJunk(); if (getTokenType() == COLON) { indentAddition = getShorthandIndentAddition(); advanceLexer(); eolSeen = false; parseBlockNode(indent + indentAddition, false); } } return YAMLElementTypes.KEY_VALUE_PAIR; }