我正在阅读关于命令的sbt文档,并想知道做什么^^^和~>意味着什么?
我试图谷歌但没有发现,这些字符被谷歌逃脱我猜...非常感谢
// 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
}
Run Code Online (Sandbox Code Playgroud)
完整代码project/CommandExample.scala在http://www.scala-sbt.org/0.13/docs/Commands.html上作为示例
这些是RichParser类的方法.
见http://www.scala-sbt.org/0.13/api/#sbt.complete.RichParser
暗示.如果您查找符号方法,请单击api doc页面左上角的"#".
^^^[B](value: B): Parser[B]:应用原始分析器,但如果成功则提供值作为结果.~>[B](b: Parser[B]): Parser[B]:生成应用原始Parser的Parser,然后应用next(按顺序),丢弃原始解析器的结果.