2017-08-02 26 views
0

請幫助!我做錯了什麼?我應該使用RegexParsers嗎?scala語法分析器失敗:字符串預期爲

object Working extends App { 

    class Parser(string: String) extends StandardTokenParsers { 

    def value: Parser[Any] = numericLit 

    println(phrase(value)(new lexical.Scanner(string))) 
    } 

    new Parser("123") 
} 

回報:[1.4]解析:123

object NotWorking extends App { 

    class Parser(string: String) extends StandardTokenParsers { 

    def value: Parser[Any] = stringLit 

    println(phrase(value)(new lexical.Scanner(string))) 
    } 

    val p = new Parser("asd") 
} 

[1.1]失敗:字符串字面量預計

ASD ^

他想幹什麼?

回答

1

字符串文字應該用引號引起來。以下幾行將起作用:

val p1 = new Parser("'asd'") 
val p2 = new Parser("\"asd\"")