什么`^^^`和`〜>`在sbt中意味着什么

时间:2016-10-03 17:18:35

标签: scala sbt

我读过sbt documentation on Commands,想知道^^^~>是什么意思?

我试着谷歌但没有发现,这些字符被谷歌逃脱我猜...非常感谢

  // Demonstration of a custom parser.
  // The command changes the foreground or background terminal color
  //  according to the input.
  lazy val change = Space ~> (reset | setColor)
  lazy val reset = token("reset" ^^^ "\033[0m")
  lazy val color = token( Space ~> ("blue" ^^^ "4" | "green" ^^^ "2") )
  lazy val select = token( "fg" ^^^ "3" | "bg" ^^^ "4" )
  lazy val setColor = (select ~ color) map { case (g, c) => "\033[" + g + c + "m" }

  def changeColor = Command("color")(_ => change) { (state, ansicode) =>
    print(ansicode)
    state
  }

完整代码在http://www.scala-sbt.org/0.13/docs/Commands.html

处为project/CommandExample.scala示例

1 个答案:

答案 0 :(得分:7)

这些是RichParser类的方法。

请参阅http://www.scala-sbt.org/0.13/api/#sbt.complete.RichParser

提示。如果您寻找符号方法,请点击'#'在api doc页面的左上角。

  • ^^^[B](value: B): Parser[B]:应用原始Parser,但如果成功则提供值。
  • ~>[B](b: Parser[B]): Parser[B]:生成应用原始Parser的Parser,然后应用next(按顺序),丢弃原始解析器的结果。