openCypher Front End Parent

Project that builds the openCypher front end modules

License

License

GroupId

GroupId

org.opencypher
ArtifactId

ArtifactId

front-end-parent
Last Version

Last Version

2.0.0
Release Date

Release Date

Type

Type

pom
Description

Description

openCypher Front End Parent
Project that builds the openCypher front end modules
Project URL

Project URL

https://www.opencypher.org
Source Code Management

Source Code Management

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

Download front-end-parent

How to add to project

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

Dependencies

compile (2)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.11.12
org.scalatest : scalatest_2.11 jar 2.2.5

test (4)

Group / Artifact Type Version
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

Project Modules

  • build
  • ast
  • rewriting
  • parser
  • frontend
  • util
  • expressions

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

Versions

Version
2.0.0
1.0.0