void next()

in util/json/src/main/java/jetbrains/jetpad/json/JsonLexer.java [42:113]


  void next() {
    skipSpaces();

    if (getCurrent() == -1) {
      myTokenKind = null;
      return;
    }

    setTokenStart();

    if (getCurrent() == '"') {
      readString();
      myTokenKind = JsonTokenKind.STRING;
      return;
    }

    if (getCurrent() == ',') {
      myTokenKind = JsonTokenKind.COMMA;
      advance();
      return;
    }

    if (getCurrent() == '[') {
      myTokenKind = JsonTokenKind.LEFT_BRACKET;
      advance();
      return;
    }

    if (getCurrent() == ']') {
      myTokenKind = JsonTokenKind.RIGHT_BRACKET;
      advance();
      return;
    }

    if (isDigit(getCurrent()) || getCurrent() == '-') {
      readNumber();
      myTokenKind = JsonTokenKind.NUMBER;
      return;
    }

    if (getCurrent() == '{') {
      myTokenKind = JsonTokenKind.LEFT_BRACE;
      advance();
      return;
    }
    if (getCurrent() == '}') {
      myTokenKind = JsonTokenKind.RIGHT_BRACE;
      advance();
      return;
    }

    if (getCurrent() == ':') {
      myTokenKind = JsonTokenKind.COLON;
      advance();
      return;
    }

    if (readString("null")) {
      myTokenKind = JsonTokenKind.NULL;
      return;
    }
    if (readString("true")) {
      myTokenKind = JsonTokenKind.TRUE;
      return;
    }
    if (readString("false")) {
      myTokenKind = JsonTokenKind.FALSE;
      return;
    }

    throw new JsonParsingException();
  }