мне нужно разобрать что-то вроде этого (включая двойные кавычки) - «блаблабла»Синтаксический двойных кавычках слова с анализатором
Мой класс должен расширять StdTokenParser. И мой класс имеет такой метод:
protected lazy val id: Parser[String] = "\"" ~ ident ~ "\"".? ^^ {case a ~ b ~ c => a + b + c}
Здесь идент является членом StdTokenParsers признака.
И это хорошо работает, когда вход «блаблабла (есть только одна двойная кавычка), но когда вход„блаблабла“он не во время синтаксического анализа с исключением следующего:
Exception in thread "main" java.lang.RuntimeException: [1.1] failure:
``"'' expected but "blablabla" found
Так, может кто-нибудь помочь мне?
Что именно «идентификатор» реализован для соответствия? И почему вы сделали заключительную цитату опциональной? –
@ Łukasz def ident: Parser [String] = 'elem (" identifier ", _.isInstanceOf [Идентификатор]) ^^ (_.chars)' Я сделал закрытие цитатой необязательным только для тестирования. Это не влияет на результаты. – alex