Neo4j 什么是cypher';什么是巴克斯诺尔表?
我想知道Cypher(Neo4j查询语言)是否有一个Backus-Naur表单Neo4j 什么是cypher';什么是巴克斯诺尔表?,neo4j,cypher,bnf,Neo4j,Cypher,Bnf,我想知道Cypher(Neo4j查询语言)是否有一个Backus-Naur表单 如果是,我在哪里可以找到它?如果没有,你能猜一个吗 没有为该语言发布单独的语法,但您可以获得所需的语法 在内部,neo4j使用一个名为的包来解析cypher。在cypher编译器软件包中,通常在/src/main/scala/org/neo4j/cypher/internal/compiler/v2_3/parser/中,您会发现一个名为子句.scala的文件,它基本上实现了scala中的cypher语法 举一个非常
如果是,我在哪里可以找到它?如果没有,你能猜一个吗 没有为该语言发布单独的语法,但您可以获得所需的语法 在内部,neo4j使用一个名为的包来解析cypher。在cypher编译器软件包中,通常在
/src/main/scala/org/neo4j/cypher/internal/compiler/v2_3/parser/
中,您会发现一个名为子句.scala
的文件,它基本上实现了scala中的cypher语法
举一个非常简单的例子,下面是LIMIT
子句的定义:
private def Limit: Rule1[ast.Limit] = rule("LIMIT") {
group(keyword("LIMIT") ~~ (UnsignedIntegerLiteral | Parameter)) ~~>> (ast.Limit(_))
}
非常简单,LIMIT
子句是关键字LIMIT
,后跟一个无符号整数文本或参数
请注意,语法中更复杂的部分之一是在Patterns.scala
中,您可以看到什么构成了图形模式。其他类似的资源通过引用包含在子句.scala
中
我对parboiled没有太多的经验,根据语法的这个定义,parboiled很有可能生成一个语法,不管你喜欢什么语法