private def maybeLit()

in rsc/src/main/scala/rsc/parse/java/Terms.scala [32:84]


  private def maybeLit(): Option[Any] = {
    in.token match {
      case FALSE | LITCHAR | LITINT | LITHEXINT | LITLONG | LITHEXLONG | LITFLOAT | LITDOUBLE |
          LITSTRING | MINUS | NULL | TRUE =>
        val snapshot = in.snapshot()
        val isNegated = {
          if (in.token == MINUS) {
            in.nextToken()
            true
          } else {
            false
          }
        }
        val value = in.token match {
          case LITCHAR =>
            in.value.head
          case LITINT =>
            val parsee = if (isNegated) "-" + in.value else in.value
            java.lang.Integer.parseInt(parsee, 10)
          case LITHEXINT =>
            val parsee = in.value.stripPrefix("0x")
            val result = java.lang.Integer.parseUnsignedInt(parsee, 16)
            if (isNegated) -result else result
          case LITLONG =>
            var parsee = if (isNegated) "-" + in.value else in.value
            java.lang.Long.parseLong(parsee, 10)
          case LITHEXLONG =>
            val parsee = in.value.stripPrefix("0x")
            val result = java.lang.Long.parseUnsignedLong(parsee, 16)
            if (isNegated) -result else result
          case LITFLOAT =>
            val parsee = if (isNegated) "-" + in.value else in.value
            java.lang.Float.parseFloat(parsee)
          case LITDOUBLE =>
            val parsee = if (isNegated) "-" + in.value else in.value
            java.lang.Double.parseDouble(parsee)
          case LITSTRING =>
            in.value
          case TRUE =>
            true
          case FALSE =>
            false
          case NULL =>
            null
          case _ =>
            return None
        }
        in.nextToken()
        Some(value)
      case _ =>
        None
    }
  }