2016-10-03 220 views
1

我在讀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 
    } 

完整的代碼爲例project/CommandExample.scalahttp://www.scala-sbt.org/0.13/docs/Commands.html

回答

7

這些都是對方法RichParser類。

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

提示。如果您查找符號方法,請單擊api文檔頁面左上角的'#'。

  • ^^^[B](value: B): Parser[B]:應用原始解析器,但如果成功則提供值作爲結果。
  • ~>[B](b: Parser[B]): Parser[B]:生成應用原始解析器的解析器,然後應用下一個(按順序),放棄原解析器的結果。
+0

謝謝,正是我在找的:) – keypoint