openCypher Front End

Scala implementation of - parser - abstract syntax tree (AST) - semantic analysis - typing - scoping for openCypher queries, resulting in a normalised AST representation of the query string. See https://www.opencypher.org for more information on the openCypher project and query language.

License

License

GroupId

GroupId

org.opencypher
ArtifactId

ArtifactId

front-end-9.0
Last Version

Last Version

9.0.20210312
Release Date

Release Date

Type

Type

jar
Description

Description

openCypher Front End
Scala implementation of - parser - abstract syntax tree (AST) - semantic analysis - typing - scoping for openCypher queries, resulting in a normalised AST representation of the query string. See https://www.opencypher.org for more information on the openCypher project and query language.
Source Code Management

Source Code Management

https://github.com/openCypher/front-end

Download front-end-9.0

How to add to project

<!-- https://jarcasting.com/artifacts/org.opencypher/front-end-9.0/ -->
<dependency>
    <groupId>org.opencypher</groupId>
    <artifactId>front-end-9.0</artifactId>
    <version>9.0.20210312</version>
</dependency>
// https://jarcasting.com/artifacts/org.opencypher/front-end-9.0/
implementation 'org.opencypher:front-end-9.0:9.0.20210312'
// https://jarcasting.com/artifacts/org.opencypher/front-end-9.0/
implementation ("org.opencypher:front-end-9.0:9.0.20210312")
'org.opencypher:front-end-9.0:jar:9.0.20210312'
<dependency org="org.opencypher" name="front-end-9.0" rev="9.0.20210312">
  <artifact name="front-end-9.0" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.opencypher', module='front-end-9.0', version='9.0.20210312')
)
libraryDependencies += "org.opencypher" % "front-end-9.0" % "9.0.20210312"
[org.opencypher/front-end-9.0 "9.0.20210312"]

Dependencies

compile (9)

Group / Artifact Type Version
org.opencypher : util-9.0 jar 9.0.20210312
org.opencypher : cypher-macros-9.0 jar 9.0.20210312
org.opencypher : expressions-9.0 jar 9.0.20210312
org.opencypher : rewriting-9.0 jar 9.0.20210312
org.opencypher : parser-9.0 jar 9.0.20210312
org.scala-lang : scala-library jar 2.12.7
org.scala-lang : scala-reflect jar 2.12.7
org.parboiled : parboiled-scala_2.12 jar 1.2.0
org.apache.commons : commons-lang3 jar 3.7

test (13)

Group / Artifact Type Version
org.opencypher : rewriting-9.0 test-jar 9.0.20210312
org.opencypher : util-9.0 test-jar 9.0.20210312
org.opencypher : expressions-9.0 test-jar 9.0.20210312
org.opencypher : ast-9.0 test-jar 9.0.20210312
org.opencypher : parser-9.0 test-jar 9.0.20210312
org.opencypher : opencypher-cypher-ast-factory-9.0 jar 9.0.20210312
org.scalacheck : scalacheck_2.12 jar 1.14.0
com.lihaoyi : pprint_2.12 jar 0.5.3
junit : junit jar 4.12
org.hamcrest : hamcrest-core jar 1.3
org.hamcrest : hamcrest-library jar 1.3
org.mockito : mockito-core jar 2.18.3
org.scalatest : scalatest_2.12 jar 3.0.5

Project Modules

There are no modules declared in this project.

The Cypher Front End Modules

Build Status

This repository holds a fully functional front end for the Cypher Property Graph Query Language. This includes a parser, an AST, semantic checking and analysis, and AST rewriting support. Its purpose is to assist anyone wanting to build tools, or working on implementing Cypher for database systems.

It is also the shared front end for Neo4j and Morpheus.

Overview of the included modules

  • AST

    • Contains the AST classes (except expressions), and the semantic analysis.

  • Expressions

    • This contains all expressions.

  • Front End

    • This module contains a prettifier for the AST, and infrastructure data structures for compiler pipelines.

  • Parser

    • Contains a parser for the Cypher Query Language.

  • Rewriting

    • This contains a set of AST rewriters that simplify and canonicalize the tree before further processing.

  • Util

    • Contains shared code and test utilities.

Why do the modules have the version number in the name?

A common feature for database systems is to allow backwards compatability for older releases of the software. This makes it possible to move over systems query by query to an updated version of the database. The names allow for two or more versions of compiler pipelines loaded at the same time. It makes it possible for us to release updated, binary incompatible versions of the front ends.

License

The openCypher project is licensed under the Apache license 2.0.

org.opencypher

Neo4j

Versions

Version
9.0.20210312
9.0.20190305
9.0.20181129
9.0.20181030
9.0.20181012
9.0.20181009
9.0.20180928
9.0.20180925
9.0.20180914
9.0.8
9.0.7
9.0.6
9.0.5
9.0.4
9.0.3
9.0.2
9.0.1
1.0.0