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