Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 什么是cypher';什么是巴克斯诺尔表?_Neo4j_Cypher_Bnf - Fatal编程技术网

Neo4j 什么是cypher';什么是巴克斯诺尔表?

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语法 举一个非常

我想知道Cypher(Neo4j查询语言)是否有一个Backus-Naur表单


如果是,我在哪里可以找到它?如果没有,你能猜一个吗

没有为该语言发布单独的语法,但您可以获得所需的语法

在内部,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很有可能生成一个语法,不管你喜欢什么语法