Использование регулярных выражений в StandardTokenParsers

Я пытаюсь использовать регулярные выражения в моем парсере на основе StandardTokenParsers. Для этого ямы подклассифицируем StdLexical следующим образом:

class CustomLexical extends StdLexical{
  def regex(r: Regex): Parser[String] = new Parser[String] {
    def apply(in:Input) = r.findPrefixMatchOf(in.source.subSequence(in.offset, in.source.length)) match {
      case Some(matched) => Success(in.source.subSequence(in.offset, in.offset + matched.end).toString,
        in.drop(matched.end))
      case None => Failure("string matching regex `" + r + "' expected but " + in.first + " found", in)
    }
  }

  override def token: Parser[Token] =
    (   regex("[a-zA-Z]:\\\\[\\w\\\\?]* | /[\\w/]*".r)     ^^ { StringLit(_) }
      | identChar ~ rep( identChar | digit )               ^^ { case first ~ rest => processIdent(first :: rest mkString "") }
      | ...

Но я'Я немного запутался в том, как определить парсер, который этим воспользуется. У меня есть парсер, определенный как:

def mTargetFolder: Parser[String] = "TargetFolder" ~> "=" ~> mFilePath

который должен использоваться для определения допустимых путей к файлам. Я попробовал тогда:

def mFilePath: Parser[String] = "[a-zA-Z]:\\\\[\\w\\\\?]* | /[\\w/]*".r

Но это явно не правильно. Я получаю ошибку:

scala: type mismatch;
 found   : scala.util.matching.Regex
 required: McfpDSL.this.Parser[String]
    def mFilePath: Parser[String] = "[a-zA-Z]:\\\\[\\w\\\\?]* | /[\\w/]*".r
                                                                          ^

Как правильно использовать расширение, сделанное в моем подклассе StdLexical?

Ответы на вопрос(2)

Ваш ответ на вопрос