private def operator()

in rsc/src/main/scala/rsc/scan/java/Scanner.scala [271:410]


  private def operator(): Unit = {
    if (ch == '=') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(EQEQ, null)
      } else {
        emit(EQUALS, null)
      }
    } else if (ch == '>') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(GTEQ, null)
      } else if (ch == '>') {
        nextChar()
        if (ch == '=') {
          nextChar()
          emit(GTGTEQ, null)
        } else if (ch == '>') {
          nextChar()
          if (ch == '=') {
            nextChar()
            emit(GTGTGTEQ, null)
          } else {
            emit(GTGTGT, null)
          }
        } else {
          emit(GTGT, null)
        }
      } else {
        emit(GT, null)
      }
    } else if (ch == '<') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(LTEQ, null)
      } else if (ch == '<') {
        nextChar()
        if (ch == '=') {
          nextChar()
          emit(LTLTEQ, null)
        } else {
          emit(LTLT, null)
        }
      } else {
        emit(LT, null)
      }
    } else if (ch == '!') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(BANGEQ, null)
      } else {
        emit(BANG, null)
      }
    } else if (ch == '~') {
      nextChar()
      emit(TILDE, null)
    } else if (ch == '&') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(AMPEQ, null)
      } else if (ch == '&') {
        nextChar()
        emit(AMPAMP, null)
      } else {
        emit(AMP, null)
      }
    } else if (ch == '|') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(BAREQ, null)
      } else if (ch == '|') {
        nextChar()
        emit(BARBAR, null)
      } else {
        emit(BAR, null)
      }
    } else if (ch == '+') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(PLUSEQ, null)
      } else if (ch == '+') {
        nextChar()
        emit(PLUSPLUS, null)
      } else {
        emit(PLUS, null)
      }
    } else if (ch == '-') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(MINUSEQ, null)
      } else if (ch == '-') {
        nextChar()
        emit(MINUSMINUS, null)
      } else {
        emit(MINUS, null)
      }
    } else if (ch == '*') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(ASTERISKEQ, null)
      } else {
        emit(ASTERISK, null)
      }
    } else if (ch == '/') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(SLASHEQ, null)
      } else {
        emit(SLASH, null)
      }
    } else if (ch == '^') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(HATEQ, null)
      } else {
        emit(HAT, null)
      }
    } else if (ch == '%') {
      nextChar()
      if (ch == '=') {
        nextChar()
        emit(PERCENTEQ, null)
      } else {
        emit(PERCENT, null)
      }
    } else {
      crash(s"not an operator: $ch")
    }
  }