Я пытаюсь создать синтаксический анализатор basi c в Scala и при попытке скомпилировать с ним самый базовый синтаксический анализатор c (синтаксический анализатор буквы 'A') получаю три синтаксические ошибки от scalac которого я не понимаю. Я смотрю на свой код и не могу понять, какие части синтаксиса являются неправильными, даже при сравнении с примерами в Интернете. Может кто-нибудь объяснить, какие части моего Scala кода неправильны здесь?
Код:
import lexer
import scala.Option
object Main {
def main(args: Array[String]) {
val Lexer = new lexer.Lexer
val tokens = Lexer.lex(args(0))
val parseA = satsify(t => t.key == "A")
println(parseA(tokens))
}
def satsify(predicate: Token => Bool): List(Token) => Option[(Token, List(Token))] = {
tl: List(Token) => match tl {
case tl.isEmpty => None
case predicate(tl(0)) => Some(tl(0), tl.tail)
case _ => None
}
}
}
Ошибки:
combParser.scala:2: error: '.' expected but ';' found.
import scala.Option
^
combParser.scala:12: error: '=' expected but '(' found.
def satsify(predicate: Token => Bool): List(Token) => Option[(Token, List(Token))] = {
^
combParser.scala:19: error: illegal start of simple expression
}
^
three errors found