簡體   English   中英

cypher 的巴科斯-諾爾形式是什么?

[英]What is cypher's Backus-Naur Form?

我想知道 Cypher(Neo4j 查詢語言)是否有 Backus-Naur 表單。

如果是這樣,我在哪里可以找到它? 如果沒有,你能猜出一個嗎?

有沒有那么公布的對語言的一個單獨的語法,但你可以得到你所需要的,從這個

在內部,Neo4j的使用稱為包蒸谷米做的暗號的解析。 在暗號編譯軟件包,一般在/src/main/scala/org/neo4j/cypher/internal/compiler/v2_3/parser/你會發現一個名為Clauses.scala基本上實現了在斯卡拉CYPHER語法。

舉一個非常簡單的例子,這里是LIMIT子句的定義:

  private def Limit: Rule1[ast.Limit] = rule("LIMIT") {
    group(keyword("LIMIT") ~~ (UnsignedIntegerLiteral | Parameter)) ~~>> (ast.Limit(_))
  }

很簡單, LIMIT子句是關鍵字LIMIT后跟一個無符號整數文字或參數。

請注意,語法中更復雜的部分之一是在Patterns.scala ,您可以在其中看到圖形模式的構成。 Clauses.scala引用了其他類似的資源。

我對 parboiled 沒有很多經驗,很可能鑒於語法的這個定義,parboiled 可以生成您可能喜歡的任何語法的語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM