def run()

in src/main/scala/lang/Cql.scala [33:58]


  def run(program: String): Future[CqlResult] =
    val scanner = new Scanner(program)
    val tokens = scanner.scanTokens
    val parser = new Parser(tokens)

    parser.parse() match
      case Success(expr) =>
        typeahead.getSuggestions(expr).map { suggestions =>
          Try { CapiCqlString.build(expr) } match
            case Success(capiCqlStr) =>
              CqlResult(
                tokens,
                Some(expr),
                Some(capiCqlStr),
                suggestions,
                None
              )
            case Failure(e: Throwable) =>
              CqlResult(
                tokens,
                Some(expr),
                None,
                suggestions,
                Some(CqlError(e.getMessage, None))
              )
        }