private void parseNs()

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);
  }