in src/java/org/jetbrains/plugins/clojure/parser/ClojureParser.java [382:401]
private void parseNs(PsiBuilder builder, PsiBuilder.Marker marker) {
final String text = builder.getTokenText();
if (!NS_TOKENS.contains(text) || builder.getTokenType() != symATOM) {
internalError(ClojureBundle.message("expected.element"));
}
parseSymbol(builder);
for (IElementType token = builder.getTokenType(); token != RIGHT_PAREN && token != null; token = builder.getTokenType()) {
parseExpression(builder);
}
if (builder.getTokenType() != RIGHT_PAREN) {
builder.error(ClojureBundle.message("expected.token", RIGHT_PAREN.toString()));
} else {
advanceLexerOrEOF(builder);
}
if (CREATE_NS.equals(text)) marker.done(ClojureElementTypes.CREATE_NS);
else if (IN_NS.equals(text)) marker.done(ClojureElementTypes.IN_NS);
else marker.done(ClojureElementTypes.NS);
}