diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/CypherParser.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/CypherParser.java index b93176c5..572083f0 100644 --- a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/CypherParser.java +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/CypherParser.java @@ -331,6 +331,8 @@ private static boolean CaseExpression_2_0(PsiBuilder b, int l) { // | DropNodePropertyExistenceConstraint // | CreateRelationshipPropertyExistenceConstraint // | DropRelationshipPropertyExistenceConstraint + // | CreateNodeKeyConstraint + // | DropNodeKeyConstraint public static boolean Command(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "Command")) return false; if (!nextTokenIs(b, "", K_CREATE, K_DROP)) return false; @@ -344,6 +346,8 @@ public static boolean Command(PsiBuilder b, int l) { if (!r) r = DropNodePropertyExistenceConstraint(b, l + 1); if (!r) r = CreateRelationshipPropertyExistenceConstraint(b, l + 1); if (!r) r = DropRelationshipPropertyExistenceConstraint(b, l + 1); + if (!r) r = CreateNodeKeyConstraint(b, l + 1); + if (!r) r = DropNodeKeyConstraint(b, l + 1); exit_section_(b, l, m, r, false, null); return r; } @@ -407,6 +411,19 @@ public static boolean CreateIndex(PsiBuilder b, int l) { return r; } + /* ********************************************************** */ + // K_CREATE NodeKeySyntax + public static boolean CreateNodeKeyConstraint(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "CreateNodeKeyConstraint")) return false; + if (!nextTokenIs(b, K_CREATE)) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeToken(b, K_CREATE); + r = r && NodeKeySyntax(b, l + 1); + exit_section_(b, m, CREATE_NODE_KEY_CONSTRAINT, r); + return r; + } + /* ********************************************************** */ // K_CREATE NodePropertyExistenceConstraintSyntax public static boolean CreateNodePropertyExistenceConstraint(PsiBuilder b, int l) { @@ -559,6 +576,19 @@ public static boolean DropIndex(PsiBuilder b, int l) { return r; } + /* ********************************************************** */ + // K_DROP NodeKeySyntax + public static boolean DropNodeKeyConstraint(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "DropNodeKeyConstraint")) return false; + if (!nextTokenIs(b, K_DROP)) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeToken(b, K_DROP); + r = r && NodeKeySyntax(b, l + 1); + exit_section_(b, m, DROP_NODE_KEY_CONSTRAINT, r); + return r; + } + /* ********************************************************** */ // K_DROP NodePropertyExistenceConstraintSyntax public static boolean DropNodePropertyExistenceConstraint(PsiBuilder b, int l) { @@ -2236,6 +2266,46 @@ private static boolean NewParameter_1(PsiBuilder b, int l) { return r; } + /* ********************************************************** */ + // K_CONSTRAINT K_ON "(" Variable NodeLabel ")" K_ASSERT "(" PropertyExpression ("," PropertyExpression)* ")" K_IS K_NODE K_KEY + public static boolean NodeKeySyntax(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "NodeKeySyntax")) return false; + if (!nextTokenIs(b, K_CONSTRAINT)) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeTokens(b, 0, K_CONSTRAINT, K_ON, PARENTHESE_OPEN); + r = r && Variable(b, l + 1); + r = r && NodeLabel(b, l + 1); + r = r && consumeTokens(b, 0, PARENTHESE_CLOSE, K_ASSERT, PARENTHESE_OPEN); + r = r && PropertyExpression(b, l + 1); + r = r && NodeKeySyntax_9(b, l + 1); + r = r && consumeTokens(b, 0, PARENTHESE_CLOSE, K_IS, K_NODE, K_KEY); + exit_section_(b, m, NODE_KEY_SYNTAX, r); + return r; + } + + // ("," PropertyExpression)* + private static boolean NodeKeySyntax_9(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "NodeKeySyntax_9")) return false; + while (true) { + int c = current_position_(b); + if (!NodeKeySyntax_9_0(b, l + 1)) break; + if (!empty_element_parsed_guard_(b, "NodeKeySyntax_9", c)) break; + } + return true; + } + + // "," PropertyExpression + private static boolean NodeKeySyntax_9_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "NodeKeySyntax_9_0")) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeToken(b, OP_COMMA); + r = r && PropertyExpression(b, l + 1); + exit_section_(b, m, null, r); + return r; + } + /* ********************************************************** */ // ":" LabelName public static boolean NodeLabel(PsiBuilder b, int l) { @@ -3609,6 +3679,7 @@ private static boolean RemoveItem_0(PsiBuilder b, int l) { // | K_ALLSHORTESTPATHS // | K_ALL // | K_ADD + // | K_KEY public static boolean ReservedWord(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ReservedWord")) return false; boolean r; @@ -3698,6 +3769,7 @@ public static boolean ReservedWord(PsiBuilder b, int l) { if (!r) r = consumeToken(b, K_ALLSHORTESTPATHS); if (!r) r = consumeToken(b, K_ALL); if (!r) r = consumeToken(b, K_ADD); + if (!r) r = consumeToken(b, K_KEY); exit_section_(b, l, m, r, false, null); return r; } diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherCommand.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherCommand.java index eff18566..97345bec 100644 --- a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherCommand.java +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherCommand.java @@ -10,6 +10,9 @@ public interface CypherCommand extends PsiElement { @Nullable CypherCreateIndex getCreateIndex(); + @Nullable + CypherCreateNodeKeyConstraint getCreateNodeKeyConstraint(); + @Nullable CypherCreateNodePropertyExistenceConstraint getCreateNodePropertyExistenceConstraint(); @@ -22,6 +25,9 @@ public interface CypherCommand extends PsiElement { @Nullable CypherDropIndex getDropIndex(); + @Nullable + CypherDropNodeKeyConstraint getDropNodeKeyConstraint(); + @Nullable CypherDropNodePropertyExistenceConstraint getDropNodePropertyExistenceConstraint(); diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherCreateNodeKeyConstraint.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherCreateNodeKeyConstraint.java new file mode 100644 index 00000000..d95c604b --- /dev/null +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherCreateNodeKeyConstraint.java @@ -0,0 +1,16 @@ +// This is a generated file. Not intended for manual editing. +package com.neueda.jetbrains.plugin.graphdb.language.cypher.psi; + +import java.util.List; +import org.jetbrains.annotations.*; +import com.intellij.psi.PsiElement; + +public interface CypherCreateNodeKeyConstraint extends PsiElement { + + @NotNull + CypherNodeKeySyntax getNodeKeySyntax(); + + @NotNull + PsiElement getKCreate(); + +} diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherDropNodeKeyConstraint.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherDropNodeKeyConstraint.java new file mode 100644 index 00000000..53a5791d --- /dev/null +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherDropNodeKeyConstraint.java @@ -0,0 +1,16 @@ +// This is a generated file. Not intended for manual editing. +package com.neueda.jetbrains.plugin.graphdb.language.cypher.psi; + +import java.util.List; +import org.jetbrains.annotations.*; +import com.intellij.psi.PsiElement; + +public interface CypherDropNodeKeyConstraint extends PsiElement { + + @NotNull + CypherNodeKeySyntax getNodeKeySyntax(); + + @NotNull + PsiElement getKDrop(); + +} diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherNodeKeySyntax.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherNodeKeySyntax.java new file mode 100644 index 00000000..aa700b82 --- /dev/null +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherNodeKeySyntax.java @@ -0,0 +1,37 @@ +// This is a generated file. Not intended for manual editing. +package com.neueda.jetbrains.plugin.graphdb.language.cypher.psi; + +import java.util.List; +import org.jetbrains.annotations.*; +import com.intellij.psi.PsiElement; + +public interface CypherNodeKeySyntax extends PsiElement { + + @NotNull + CypherNodeLabel getNodeLabel(); + + @NotNull + List getPropertyExpressionList(); + + @NotNull + CypherVariable getVariable(); + + @NotNull + PsiElement getKAssert(); + + @NotNull + PsiElement getKConstraint(); + + @NotNull + PsiElement getKIs(); + + @NotNull + PsiElement getKKey(); + + @NotNull + PsiElement getKNode(); + + @NotNull + PsiElement getKOn(); + +} diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherReservedWord.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherReservedWord.java index 03949485..de231859 100644 --- a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherReservedWord.java +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherReservedWord.java @@ -139,6 +139,9 @@ public interface CypherReservedWord extends PsiElement { @Nullable PsiElement getKJoin(); + @Nullable + PsiElement getKKey(); + @Nullable PsiElement getKLimit(); diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherTypes.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherTypes.java index cb986975..3bb2037c 100644 --- a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherTypes.java +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherTypes.java @@ -26,6 +26,7 @@ public interface CypherTypes { IElementType COUNT_STAR = new CypherElementType("COUNT_STAR"); IElementType CREATE = new CypherElementType("CREATE"); IElementType CREATE_INDEX = new CypherElementType("CREATE_INDEX"); + IElementType CREATE_NODE_KEY_CONSTRAINT = new CypherElementType("CREATE_NODE_KEY_CONSTRAINT"); IElementType CREATE_NODE_PROPERTY_EXISTENCE_CONSTRAINT = new CypherElementType("CREATE_NODE_PROPERTY_EXISTENCE_CONSTRAINT"); IElementType CREATE_RELATIONSHIP_PROPERTY_EXISTENCE_CONSTRAINT = new CypherElementType("CREATE_RELATIONSHIP_PROPERTY_EXISTENCE_CONSTRAINT"); IElementType CREATE_UNIQUE_CONSTRAINT = new CypherElementType("CREATE_UNIQUE_CONSTRAINT"); @@ -34,6 +35,7 @@ public interface CypherTypes { IElementType DELETE = new CypherElementType("DELETE"); IElementType DOUBLE_LITERAL = new CypherElementType("DOUBLE_LITERAL"); IElementType DROP_INDEX = new CypherElementType("DROP_INDEX"); + IElementType DROP_NODE_KEY_CONSTRAINT = new CypherElementType("DROP_NODE_KEY_CONSTRAINT"); IElementType DROP_NODE_PROPERTY_EXISTENCE_CONSTRAINT = new CypherElementType("DROP_NODE_PROPERTY_EXISTENCE_CONSTRAINT"); IElementType DROP_RELATIONSHIP_PROPERTY_EXISTENCE_CONSTRAINT = new CypherElementType("DROP_RELATIONSHIP_PROPERTY_EXISTENCE_CONSTRAINT"); IElementType DROP_UNIQUE_CONSTRAINT = new CypherElementType("DROP_UNIQUE_CONSTRAINT"); @@ -76,6 +78,7 @@ public interface CypherTypes { IElementType MULTI_PART_QUERY = new CypherElementType("MULTI_PART_QUERY"); IElementType NAMESPACE = new CypherElementType("NAMESPACE"); IElementType NEW_PARAMETER = new CypherElementType("NEW_PARAMETER"); + IElementType NODE_KEY_SYNTAX = new CypherElementType("NODE_KEY_SYNTAX"); IElementType NODE_LABEL = new CypherElementType("NODE_LABEL"); IElementType NODE_LABELS = new CypherElementType("NODE_LABELS"); IElementType NODE_LOOKUP = new CypherElementType("NODE_LOOKUP"); @@ -212,6 +215,7 @@ public interface CypherTypes { IElementType K_INDEX = new CypherTokenType("K_INDEX"); IElementType K_IS = new CypherTokenType("K_IS"); IElementType K_JOIN = new CypherTokenType("K_JOIN"); + IElementType K_KEY = new CypherTokenType("K_KEY"); IElementType K_LIMIT = new CypherTokenType("K_LIMIT"); IElementType K_LOAD = new CypherTokenType("K_LOAD"); IElementType K_MANDATORY = new CypherTokenType("K_MANDATORY"); @@ -341,6 +345,9 @@ else if (type == CREATE) { else if (type == CREATE_INDEX) { return new CypherCreateIndexImpl(node); } + else if (type == CREATE_NODE_KEY_CONSTRAINT) { + return new CypherCreateNodeKeyConstraintImpl(node); + } else if (type == CREATE_NODE_PROPERTY_EXISTENCE_CONSTRAINT) { return new CypherCreateNodePropertyExistenceConstraintImpl(node); } @@ -365,6 +372,9 @@ else if (type == DOUBLE_LITERAL) { else if (type == DROP_INDEX) { return new CypherDropIndexImpl(node); } + else if (type == DROP_NODE_KEY_CONSTRAINT) { + return new CypherDropNodeKeyConstraintImpl(node); + } else if (type == DROP_NODE_PROPERTY_EXISTENCE_CONSTRAINT) { return new CypherDropNodePropertyExistenceConstraintImpl(node); } @@ -491,6 +501,9 @@ else if (type == NAMESPACE) { else if (type == NEW_PARAMETER) { return new CypherNewParameterImpl(node); } + else if (type == NODE_KEY_SYNTAX) { + return new CypherNodeKeySyntaxImpl(node); + } else if (type == NODE_LABEL) { return new CypherNodeLabelImpl(node); } diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherVisitor.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherVisitor.java index a7ea563c..b9da4374 100644 --- a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherVisitor.java +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherVisitor.java @@ -94,6 +94,10 @@ public void visitCreateIndex(@NotNull CypherCreateIndex o) { visitPsiElement(o); } + public void visitCreateNodeKeyConstraint(@NotNull CypherCreateNodeKeyConstraint o) { + visitPsiElement(o); + } + public void visitCreateNodePropertyExistenceConstraint(@NotNull CypherCreateNodePropertyExistenceConstraint o) { visitPsiElement(o); } @@ -126,6 +130,10 @@ public void visitDropIndex(@NotNull CypherDropIndex o) { visitPsiElement(o); } + public void visitDropNodeKeyConstraint(@NotNull CypherDropNodeKeyConstraint o) { + visitPsiElement(o); + } + public void visitDropNodePropertyExistenceConstraint(@NotNull CypherDropNodePropertyExistenceConstraint o) { visitPsiElement(o); } @@ -294,6 +302,10 @@ public void visitNewParameter(@NotNull CypherNewParameter o) { visitPsiElement(o); } + public void visitNodeKeySyntax(@NotNull CypherNodeKeySyntax o) { + visitPsiElement(o); + } + public void visitNodeLabel(@NotNull CypherNodeLabel o) { visitPsiElement(o); } diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherCommandImpl.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherCommandImpl.java index 0f76ec6d..029e5555 100644 --- a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherCommandImpl.java +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherCommandImpl.java @@ -32,6 +32,12 @@ public CypherCreateIndex getCreateIndex() { return findChildByClass(CypherCreateIndex.class); } + @Override + @Nullable + public CypherCreateNodeKeyConstraint getCreateNodeKeyConstraint() { + return findChildByClass(CypherCreateNodeKeyConstraint.class); + } + @Override @Nullable public CypherCreateNodePropertyExistenceConstraint getCreateNodePropertyExistenceConstraint() { @@ -56,6 +62,12 @@ public CypherDropIndex getDropIndex() { return findChildByClass(CypherDropIndex.class); } + @Override + @Nullable + public CypherDropNodeKeyConstraint getDropNodeKeyConstraint() { + return findChildByClass(CypherDropNodeKeyConstraint.class); + } + @Override @Nullable public CypherDropNodePropertyExistenceConstraint getDropNodePropertyExistenceConstraint() { diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherCreateNodeKeyConstraintImpl.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherCreateNodeKeyConstraintImpl.java new file mode 100644 index 00000000..6fc79f91 --- /dev/null +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherCreateNodeKeyConstraintImpl.java @@ -0,0 +1,41 @@ +// This is a generated file. Not intended for manual editing. +package com.neueda.jetbrains.plugin.graphdb.language.cypher.psi.impl; + +import java.util.List; +import org.jetbrains.annotations.*; +import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.util.PsiTreeUtil; +import static com.neueda.jetbrains.plugin.graphdb.language.cypher.psi.CypherTypes.*; +import com.intellij.extapi.psi.ASTWrapperPsiElement; +import com.neueda.jetbrains.plugin.graphdb.language.cypher.psi.*; + +public class CypherCreateNodeKeyConstraintImpl extends ASTWrapperPsiElement implements CypherCreateNodeKeyConstraint { + + public CypherCreateNodeKeyConstraintImpl(ASTNode node) { + super(node); + } + + public void accept(@NotNull CypherVisitor visitor) { + visitor.visitCreateNodeKeyConstraint(this); + } + + public void accept(@NotNull PsiElementVisitor visitor) { + if (visitor instanceof CypherVisitor) accept((CypherVisitor)visitor); + else super.accept(visitor); + } + + @Override + @NotNull + public CypherNodeKeySyntax getNodeKeySyntax() { + return findNotNullChildByClass(CypherNodeKeySyntax.class); + } + + @Override + @NotNull + public PsiElement getKCreate() { + return findNotNullChildByType(K_CREATE); + } + +} diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherDropNodeKeyConstraintImpl.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherDropNodeKeyConstraintImpl.java new file mode 100644 index 00000000..624e24c5 --- /dev/null +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherDropNodeKeyConstraintImpl.java @@ -0,0 +1,41 @@ +// This is a generated file. Not intended for manual editing. +package com.neueda.jetbrains.plugin.graphdb.language.cypher.psi.impl; + +import java.util.List; +import org.jetbrains.annotations.*; +import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.util.PsiTreeUtil; +import static com.neueda.jetbrains.plugin.graphdb.language.cypher.psi.CypherTypes.*; +import com.intellij.extapi.psi.ASTWrapperPsiElement; +import com.neueda.jetbrains.plugin.graphdb.language.cypher.psi.*; + +public class CypherDropNodeKeyConstraintImpl extends ASTWrapperPsiElement implements CypherDropNodeKeyConstraint { + + public CypherDropNodeKeyConstraintImpl(ASTNode node) { + super(node); + } + + public void accept(@NotNull CypherVisitor visitor) { + visitor.visitDropNodeKeyConstraint(this); + } + + public void accept(@NotNull PsiElementVisitor visitor) { + if (visitor instanceof CypherVisitor) accept((CypherVisitor)visitor); + else super.accept(visitor); + } + + @Override + @NotNull + public CypherNodeKeySyntax getNodeKeySyntax() { + return findNotNullChildByClass(CypherNodeKeySyntax.class); + } + + @Override + @NotNull + public PsiElement getKDrop() { + return findNotNullChildByType(K_DROP); + } + +} diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherNodeKeySyntaxImpl.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherNodeKeySyntaxImpl.java new file mode 100644 index 00000000..0c3d0fcd --- /dev/null +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherNodeKeySyntaxImpl.java @@ -0,0 +1,83 @@ +// This is a generated file. Not intended for manual editing. +package com.neueda.jetbrains.plugin.graphdb.language.cypher.psi.impl; + +import java.util.List; +import org.jetbrains.annotations.*; +import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.util.PsiTreeUtil; +import static com.neueda.jetbrains.plugin.graphdb.language.cypher.psi.CypherTypes.*; +import com.intellij.extapi.psi.ASTWrapperPsiElement; +import com.neueda.jetbrains.plugin.graphdb.language.cypher.psi.*; + +public class CypherNodeKeySyntaxImpl extends ASTWrapperPsiElement implements CypherNodeKeySyntax { + + public CypherNodeKeySyntaxImpl(ASTNode node) { + super(node); + } + + public void accept(@NotNull CypherVisitor visitor) { + visitor.visitNodeKeySyntax(this); + } + + public void accept(@NotNull PsiElementVisitor visitor) { + if (visitor instanceof CypherVisitor) accept((CypherVisitor)visitor); + else super.accept(visitor); + } + + @Override + @NotNull + public CypherNodeLabel getNodeLabel() { + return findNotNullChildByClass(CypherNodeLabel.class); + } + + @Override + @NotNull + public List getPropertyExpressionList() { + return PsiTreeUtil.getChildrenOfTypeAsList(this, CypherPropertyExpression.class); + } + + @Override + @NotNull + public CypherVariable getVariable() { + return findNotNullChildByClass(CypherVariable.class); + } + + @Override + @NotNull + public PsiElement getKAssert() { + return findNotNullChildByType(K_ASSERT); + } + + @Override + @NotNull + public PsiElement getKConstraint() { + return findNotNullChildByType(K_CONSTRAINT); + } + + @Override + @NotNull + public PsiElement getKIs() { + return findNotNullChildByType(K_IS); + } + + @Override + @NotNull + public PsiElement getKKey() { + return findNotNullChildByType(K_KEY); + } + + @Override + @NotNull + public PsiElement getKNode() { + return findNotNullChildByType(K_NODE); + } + + @Override + @NotNull + public PsiElement getKOn() { + return findNotNullChildByType(K_ON); + } + +} diff --git a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherReservedWordImpl.java b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherReservedWordImpl.java index da5877ba..6509497e 100644 --- a/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherReservedWordImpl.java +++ b/language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherReservedWordImpl.java @@ -290,6 +290,12 @@ public PsiElement getKJoin() { return findChildByType(K_JOIN); } + @Override + @Nullable + public PsiElement getKKey() { + return findChildByType(K_KEY); + } + @Override @Nullable public PsiElement getKLimit() { diff --git a/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/Cypher.bnf b/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/Cypher.bnf index 32d71b73..f422ec36 100644 --- a/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/Cypher.bnf +++ b/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/Cypher.bnf @@ -100,6 +100,7 @@ K_SCALAR="regexp:[Ss][Cc][Aa][Ll][Aa][Rr]" K_OF="regexp:[Oo][Ff]" K_ADD="regexp:[Aa][Dd][Dd]" + K_KEY="regexp:(K|k)(E|e)(Y|y)" // literals l_identifier="regexp:[a-zA-Z_][a-zA-Z_$0-9]*" @@ -197,6 +198,8 @@ Command ::= CreateIndex | DropNodePropertyExistenceConstraint | CreateRelationshipPropertyExistenceConstraint | DropRelationshipPropertyExistenceConstraint + | CreateNodeKeyConstraint + | DropNodeKeyConstraint CreateIndex ::= K_CREATE IndexSyntax DropIndex ::= K_DROP IndexSyntax @@ -210,13 +213,16 @@ CreateNodePropertyExistenceConstraint ::= K_CREATE NodePropertyExistenceConstrai DropNodePropertyExistenceConstraint ::= K_DROP NodePropertyExistenceConstraintSyntax NodePropertyExistenceConstraintSyntax ::= K_CONSTRAINT K_ON "(" Variable NodeLabel ")" K_ASSERT K_EXISTS "(" PropertyExpression ")" +CreateNodeKeyConstraint ::= K_CREATE NodeKeySyntax +DropNodeKeyConstraint ::= K_DROP NodeKeySyntax +NodeKeySyntax ::= K_CONSTRAINT K_ON "(" Variable NodeLabel ")" K_ASSERT "(" PropertyExpression ("," PropertyExpression)* ")" K_IS K_NODE K_KEY + CreateRelationshipPropertyExistenceConstraint ::= K_CREATE RelationshipPropertyExistenceConstraintSyntax DropRelationshipPropertyExistenceConstraint ::= K_DROP RelationshipPropertyExistenceConstraintSyntax RelationshipPropertyExistenceConstraintSyntax ::= K_CONSTRAINT K_ON RelationshipPatternSyntax K_ASSERT K_EXISTS "(" PropertyExpression ")" RelationshipPatternSyntax ::= ("(" ")" "-" "[" Variable RelType "]" "-" "(" ")") | ("(" ")" "-" "[" Variable RelType "]" "-" ">" "(" ")") | ("(" ")" "<" "-" "[" Variable RelType "]" "-" "(" ")") - /************************* * Query */ @@ -662,6 +668,7 @@ ReservedWord ::= K_MATCH | K_ALLSHORTESTPATHS | K_ALL | K_ADD + | K_KEY EscapedSymbolicNameString ::= l_identifier_text UnescapedSymbolicNameString ::= l_identifier diff --git a/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/_CypherLexer.flex b/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/_CypherLexer.flex index c994b9ff..7832437e 100644 --- a/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/_CypherLexer.flex +++ b/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/_CypherLexer.flex @@ -112,6 +112,7 @@ K_MANDATORY=[Mm][Aa][Nn][Dd][Aa][Tt][Oo][Rr][Yy] K_SCALAR=[Ss][Cc][Aa][Ll][Aa][Rr] K_OF=[Oo][Ff] K_ADD=[Aa][Dd][Dd] +K_KEY=(K|k)(E|e)(Y|y) L_IDENTIFIER=[a-zA-Z_][a-zA-Z_$0-9]* L_IDENTIFIER_TEXT=\`[^`]+\` L_DECIMAL=(0|[1-9][0-9]*)\.[0-9]+ @@ -244,6 +245,7 @@ BLOCK_COMMENT = "/*" ( ([^"*"]|[\r\n])* ("*"+ [^"*""/"] )? )* ("*" | "*"+"/")? {K_SCALAR} { return K_SCALAR; } {K_OF} { return K_OF; } {K_ADD} { return K_ADD; } + {K_KEY} { return K_KEY; } {L_IDENTIFIER} { return L_IDENTIFIER; } {L_IDENTIFIER_TEXT} { return L_IDENTIFIER_TEXT; } {L_DECIMAL} { return L_DECIMAL; } diff --git a/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/_CypherLexer.java b/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/_CypherLexer.java index ad13aed9..3e6b9168 100644 --- a/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/_CypherLexer.java +++ b/language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/_CypherLexer.java @@ -72,33 +72,33 @@ public static int ZZ_CMAP(int ch) { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\26\3\1\4\1\5\2\6\1\7"+ + "\1\0\1\1\1\2\27\3\1\4\1\5\2\6\1\7"+ "\2\1\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+ "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"+ "\1\27\1\30\1\31\1\1\1\32\1\33\4\3\1\34"+ "\24\3\1\35\1\36\1\37\6\3\1\40\1\41\1\42"+ - "\16\3\1\43\1\3\2\0\1\44\1\0\1\45\3\0"+ + "\16\3\1\43\2\3\2\0\1\44\1\0\1\45\3\0"+ "\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55"+ "\3\3\1\56\1\57\1\60\1\61\1\3\1\62\5\3"+ "\1\63\10\3\1\64\1\3\1\65\10\3\1\66\13\3"+ - "\1\67\14\3\1\70\1\71\5\3\1\72\1\73\1\47"+ - "\6\3\1\74\1\75\1\76\1\77\14\3\1\100\1\101"+ - "\7\3\1\102\1\103\1\104\1\105\1\3\1\106\4\3"+ - "\1\107\3\3\1\110\3\3\1\111\1\3\1\112\1\113"+ - "\1\3\1\114\5\3\1\115\2\3\1\47\1\0\1\116"+ - "\1\3\1\117\5\3\1\120\14\3\1\121\2\3\1\122"+ - "\4\3\1\123\1\124\3\3\1\125\1\3\1\126\1\127"+ - "\1\130\5\3\1\131\1\132\2\3\1\133\1\3\1\134"+ - "\1\135\2\3\1\136\1\3\1\137\1\140\1\141\3\3"+ - "\1\142\1\3\1\143\1\144\1\145\1\3\1\146\1\3"+ - "\1\147\1\150\1\3\1\151\2\3\1\152\10\3\1\153"+ - "\1\3\1\154\1\155\1\156\5\3\1\157\1\160\4\3"+ - "\1\161\3\3\1\162\1\3\1\163\1\3\1\164\1\165"+ - "\1\166\7\3\1\167\1\3\1\170\7\3\1\171\1\172"+ - "\6\3\1\173\1\174"; + "\1\67\14\3\1\70\1\71\5\3\1\72\1\73\1\74"+ + "\1\47\6\3\1\75\1\76\1\77\1\100\14\3\1\101"+ + "\1\102\7\3\1\103\1\104\1\105\1\106\1\3\1\107"+ + "\4\3\1\110\3\3\1\111\3\3\1\112\1\3\1\113"+ + "\1\114\1\3\1\115\5\3\1\116\2\3\1\47\1\0"+ + "\1\117\1\3\1\120\5\3\1\121\14\3\1\122\2\3"+ + "\1\123\4\3\1\124\1\125\3\3\1\126\1\3\1\127"+ + "\1\130\1\131\5\3\1\132\1\133\2\3\1\134\1\3"+ + "\1\135\1\136\2\3\1\137\1\3\1\140\1\141\1\142"+ + "\3\3\1\143\1\3\1\144\1\145\1\146\1\3\1\147"+ + "\1\3\1\150\1\151\1\3\1\152\2\3\1\153\10\3"+ + "\1\154\1\3\1\155\1\156\1\157\5\3\1\160\1\161"+ + "\4\3\1\162\3\3\1\163\1\3\1\164\1\3\1\165"+ + "\1\166\1\167\7\3\1\170\1\3\1\171\7\3\1\172"+ + "\1\173\6\3\1\174\1\175"; private static int [] zzUnpackAction() { - int [] result = new int[395]; + int [] result = new int[398]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -126,56 +126,56 @@ private static int zzUnpackAction(String packed, int offset, int [] result) { "\0\0\0\74\0\170\0\264\0\360\0\u012c\0\u0168\0\u01a4"+ "\0\u01e0\0\u021c\0\u0258\0\u0294\0\u02d0\0\u030c\0\u0348\0\u0384"+ "\0\u03c0\0\u03fc\0\u0438\0\u0474\0\u04b0\0\u04ec\0\u0528\0\u0564"+ - "\0\u05a0\0\74\0\u05dc\0\u0618\0\u0654\0\u0690\0\u06cc\0\u0708"+ - "\0\u0744\0\74\0\74\0\74\0\74\0\74\0\74\0\74"+ - "\0\74\0\74\0\u0780\0\u07bc\0\u07f8\0\u0834\0\74\0\74"+ - "\0\74\0\74\0\u0870\0\74\0\74\0\u08ac\0\u08e8\0\u0924"+ + "\0\u05a0\0\u05dc\0\74\0\u0618\0\u0654\0\u0690\0\u06cc\0\u0708"+ + "\0\u0744\0\u0780\0\74\0\74\0\74\0\74\0\74\0\74"+ + "\0\74\0\74\0\74\0\u07bc\0\u07f8\0\u0834\0\u0870\0\74"+ + "\0\74\0\74\0\74\0\u08ac\0\74\0\74\0\u08e8\0\u0924"+ "\0\u0960\0\u099c\0\u09d8\0\u0a14\0\u0a50\0\u0a8c\0\u0ac8\0\u0b04"+ "\0\u0b40\0\u0b7c\0\u0bb8\0\u0bf4\0\u0c30\0\u0c6c\0\u0ca8\0\u0ce4"+ - "\0\u0d20\0\u0d5c\0\u0d98\0\u0dd4\0\u0e10\0\u0e4c\0\u03fc\0\u0e88"+ - "\0\u03fc\0\u0ec4\0\u0f00\0\u0f3c\0\u0f78\0\u0fb4\0\u0ff0\0\u102c"+ - "\0\u03fc\0\u03fc\0\u1068\0\u10a4\0\u10e0\0\u111c\0\u1158\0\u1194"+ + "\0\u0d20\0\u0d5c\0\u0d98\0\u0dd4\0\u0e10\0\u0e4c\0\u0e88\0\u03fc"+ + "\0\u0ec4\0\u03fc\0\u0f00\0\u0f3c\0\u0f78\0\u0fb4\0\u0ff0\0\u102c"+ + "\0\u1068\0\u03fc\0\u03fc\0\u10a4\0\u10e0\0\u111c\0\u1158\0\u1194"+ "\0\u11d0\0\u120c\0\u1248\0\u1284\0\u12c0\0\u12fc\0\u1338\0\u1374"+ - "\0\u03fc\0\u13b0\0\u13ec\0\u1428\0\74\0\u06cc\0\74\0\u1464"+ - "\0\u0708\0\u14a0\0\u14dc\0\u1518\0\74\0\74\0\74\0\74"+ - "\0\74\0\74\0\u1554\0\u1590\0\u15cc\0\u03fc\0\u03fc\0\u03fc"+ - "\0\u1608\0\u1644\0\u1680\0\u16bc\0\u16f8\0\u1734\0\u1770\0\u17ac"+ - "\0\u03fc\0\u17e8\0\u1824\0\u1860\0\u189c\0\u18d8\0\u1914\0\u1950"+ + "\0\u13b0\0\u03fc\0\u13ec\0\u1428\0\u1464\0\u14a0\0\74\0\u0708"+ + "\0\74\0\u14dc\0\u0744\0\u1518\0\u1554\0\u1590\0\74\0\74"+ + "\0\74\0\74\0\74\0\74\0\u15cc\0\u1608\0\u1644\0\u03fc"+ + "\0\u03fc\0\u03fc\0\u1680\0\u16bc\0\u16f8\0\u1734\0\u1770\0\u17ac"+ + "\0\u17e8\0\u1824\0\u03fc\0\u1860\0\u189c\0\u18d8\0\u1914\0\u1950"+ "\0\u198c\0\u19c8\0\u1a04\0\u1a40\0\u1a7c\0\u1ab8\0\u1af4\0\u1b30"+ - "\0\u1b6c\0\u1ba8\0\u1be4\0\u1c20\0\u03fc\0\u1c5c\0\u1c98\0\u1cd4"+ + "\0\u1b6c\0\u1ba8\0\u1be4\0\u1c20\0\u1c5c\0\u1c98\0\u03fc\0\u1cd4"+ "\0\u1d10\0\u1d4c\0\u1d88\0\u1dc4\0\u1e00\0\u1e3c\0\u1e78\0\u1eb4"+ - "\0\u03fc\0\u1ef0\0\u1f2c\0\u1f68\0\u1fa4\0\u1fe0\0\u201c\0\u2058"+ - "\0\u2094\0\u20d0\0\u210c\0\u2148\0\u2184\0\u21c0\0\u03fc\0\u21fc"+ - "\0\u2238\0\u2274\0\u22b0\0\u22ec\0\74\0\u1428\0\u2328\0\u2364"+ - "\0\u23a0\0\u23dc\0\u2418\0\u2454\0\u2490\0\u03fc\0\u03fc\0\u03fc"+ - "\0\u03fc\0\u24cc\0\u2508\0\u2544\0\u2580\0\u25bc\0\u25f8\0\u2634"+ - "\0\u2670\0\u26ac\0\u26e8\0\u2724\0\u2760\0\u03fc\0\u03fc\0\u279c"+ - "\0\u27d8\0\u2814\0\u2850\0\u288c\0\u28c8\0\u2904\0\u03fc\0\u03fc"+ - "\0\u03fc\0\u03fc\0\u2940\0\u297c\0\u29b8\0\u29f4\0\u2a30\0\u2a6c"+ - "\0\u03fc\0\u2aa8\0\u2ae4\0\u2b20\0\u03fc\0\u2b5c\0\u2b98\0\u2bd4"+ - "\0\u03fc\0\u2c10\0\u03fc\0\u03fc\0\u2c4c\0\u03fc\0\u2c88\0\u2cc4"+ - "\0\u2d00\0\u2d3c\0\u2d78\0\u03fc\0\u2db4\0\u2df0\0\74\0\u2328"+ - "\0\u03fc\0\u2e2c\0\u03fc\0\u2e68\0\u2ea4\0\u2ee0\0\u2f1c\0\u2f58"+ - "\0\u03fc\0\u2f94\0\u2fd0\0\u300c\0\u3048\0\u3084\0\u30c0\0\u30fc"+ - "\0\u3138\0\u3174\0\u31b0\0\u31ec\0\u3228\0\u03fc\0\u3264\0\u32a0"+ - "\0\u03fc\0\u32dc\0\u3318\0\u3354\0\u3390\0\u03fc\0\u33cc\0\u3408"+ - "\0\u3444\0\u3480\0\u03fc\0\u34bc\0\u03fc\0\u03fc\0\u03fc\0\u34f8"+ - "\0\u3534\0\u3570\0\u35ac\0\u35e8\0\u03fc\0\u03fc\0\u3624\0\u3660"+ - "\0\u03fc\0\u369c\0\u03fc\0\u03fc\0\u36d8\0\u3714\0\u03fc\0\u3750"+ - "\0\u03fc\0\u03fc\0\u03fc\0\u378c\0\u37c8\0\u3804\0\u03fc\0\u3840"+ - "\0\u03fc\0\u03fc\0\u03fc\0\u387c\0\u03fc\0\u38b8\0\u03fc\0\u03fc"+ - "\0\u38f4\0\u03fc\0\u3930\0\u396c\0\u03fc\0\u39a8\0\u39e4\0\u3a20"+ - "\0\u3a5c\0\u3a98\0\u3ad4\0\u3b10\0\u3b4c\0\u03fc\0\u3b88\0\u03fc"+ - "\0\u03fc\0\u03fc\0\u3bc4\0\u3c00\0\u3c3c\0\u3c78\0\u3cb4\0\u03fc"+ - "\0\u03fc\0\u3cf0\0\u3d2c\0\u3d68\0\u3da4\0\u03fc\0\u3de0\0\u3e1c"+ - "\0\u3e58\0\u03fc\0\u3e94\0\u03fc\0\u3ed0\0\u03fc\0\u03fc\0\u03fc"+ - "\0\u3f0c\0\u3f48\0\u3f84\0\u3fc0\0\u3ffc\0\u4038\0\u4074\0\u03fc"+ - "\0\u40b0\0\u03fc\0\u40ec\0\u4128\0\u4164\0\u41a0\0\u41dc\0\u4218"+ - "\0\u4254\0\u03fc\0\u03fc\0\u4290\0\u42cc\0\u4308\0\u4344\0\u4380"+ - "\0\u43bc\0\u03fc\0\u03fc"; + "\0\u1ef0\0\u1f2c\0\u03fc\0\u1f68\0\u1fa4\0\u1fe0\0\u201c\0\u2058"+ + "\0\u2094\0\u20d0\0\u210c\0\u2148\0\u2184\0\u21c0\0\u21fc\0\u2238"+ + "\0\u03fc\0\u2274\0\u22b0\0\u22ec\0\u2328\0\u2364\0\u03fc\0\74"+ + "\0\u14a0\0\u23a0\0\u23dc\0\u2418\0\u2454\0\u2490\0\u24cc\0\u2508"+ + "\0\u03fc\0\u03fc\0\u03fc\0\u03fc\0\u2544\0\u2580\0\u25bc\0\u25f8"+ + "\0\u2634\0\u2670\0\u26ac\0\u26e8\0\u2724\0\u2760\0\u279c\0\u27d8"+ + "\0\u03fc\0\u03fc\0\u2814\0\u2850\0\u288c\0\u28c8\0\u2904\0\u2940"+ + "\0\u297c\0\u03fc\0\u03fc\0\u03fc\0\u03fc\0\u29b8\0\u29f4\0\u2a30"+ + "\0\u2a6c\0\u2aa8\0\u2ae4\0\u03fc\0\u2b20\0\u2b5c\0\u2b98\0\u03fc"+ + "\0\u2bd4\0\u2c10\0\u2c4c\0\u03fc\0\u2c88\0\u03fc\0\u03fc\0\u2cc4"+ + "\0\u03fc\0\u2d00\0\u2d3c\0\u2d78\0\u2db4\0\u2df0\0\u03fc\0\u2e2c"+ + "\0\u2e68\0\74\0\u23a0\0\u03fc\0\u2ea4\0\u03fc\0\u2ee0\0\u2f1c"+ + "\0\u2f58\0\u2f94\0\u2fd0\0\u03fc\0\u300c\0\u3048\0\u3084\0\u30c0"+ + "\0\u30fc\0\u3138\0\u3174\0\u31b0\0\u31ec\0\u3228\0\u3264\0\u32a0"+ + "\0\u03fc\0\u32dc\0\u3318\0\u03fc\0\u3354\0\u3390\0\u33cc\0\u3408"+ + "\0\u03fc\0\u3444\0\u3480\0\u34bc\0\u34f8\0\u03fc\0\u3534\0\u03fc"+ + "\0\u03fc\0\u03fc\0\u3570\0\u35ac\0\u35e8\0\u3624\0\u3660\0\u03fc"+ + "\0\u03fc\0\u369c\0\u36d8\0\u03fc\0\u3714\0\u03fc\0\u03fc\0\u3750"+ + "\0\u378c\0\u03fc\0\u37c8\0\u03fc\0\u03fc\0\u03fc\0\u3804\0\u3840"+ + "\0\u387c\0\u03fc\0\u38b8\0\u03fc\0\u03fc\0\u03fc\0\u38f4\0\u03fc"+ + "\0\u3930\0\u03fc\0\u03fc\0\u396c\0\u03fc\0\u39a8\0\u39e4\0\u03fc"+ + "\0\u3a20\0\u3a5c\0\u3a98\0\u3ad4\0\u3b10\0\u3b4c\0\u3b88\0\u3bc4"+ + "\0\u03fc\0\u3c00\0\u03fc\0\u03fc\0\u03fc\0\u3c3c\0\u3c78\0\u3cb4"+ + "\0\u3cf0\0\u3d2c\0\u03fc\0\u03fc\0\u3d68\0\u3da4\0\u3de0\0\u3e1c"+ + "\0\u03fc\0\u3e58\0\u3e94\0\u3ed0\0\u03fc\0\u3f0c\0\u03fc\0\u3f48"+ + "\0\u03fc\0\u03fc\0\u03fc\0\u3f84\0\u3fc0\0\u3ffc\0\u4038\0\u4074"+ + "\0\u40b0\0\u40ec\0\u03fc\0\u4128\0\u03fc\0\u4164\0\u41a0\0\u41dc"+ + "\0\u4218\0\u4254\0\u4290\0\u42cc\0\u03fc\0\u03fc\0\u4308\0\u4344"+ + "\0\u4380\0\u43bc\0\u43f8\0\u4434\0\u03fc\0\u03fc"; private static int [] zzUnpackRowMap() { - int [] result = new int[395]; + int [] result = new int[398]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -201,234 +201,235 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) { "\1\2\3\3\1\4\1\5\1\6\1\7\1\10\1\11"+ "\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21"+ "\1\22\1\23\1\24\1\22\1\25\1\26\1\22\1\27"+ - "\1\30\1\31\2\22\1\32\1\33\1\34\1\35\1\36"+ - "\1\37\1\2\1\40\1\41\1\42\1\43\1\44\1\45"+ + "\1\30\1\31\1\32\1\22\1\33\1\34\1\35\1\36"+ + "\1\37\1\40\1\2\1\41\1\42\1\43\1\44\1\45"+ "\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55"+ "\1\56\1\57\1\60\1\61\1\62\1\63\1\64\1\65"+ - "\1\2\75\0\3\3\74\0\1\22\1\66\4\22\1\67"+ - "\24\22\1\0\2\22\36\0\10\22\1\70\1\71\1\22"+ - "\1\72\1\22\1\73\15\22\1\0\2\22\36\0\4\22"+ - "\1\74\1\75\25\22\1\0\2\22\36\0\1\22\1\76"+ - "\3\22\1\77\5\22\1\100\1\101\12\22\1\102\3\22"+ - "\1\0\2\22\36\0\6\22\1\103\24\22\1\0\2\22"+ - "\36\0\6\22\1\104\24\22\1\0\2\22\36\0\10\22"+ - "\1\105\4\22\1\106\4\22\1\107\10\22\1\0\2\22"+ - "\36\0\10\22\1\110\2\22\1\111\17\22\1\0\2\22"+ - "\36\0\7\22\1\112\4\22\1\113\16\22\1\0\2\22"+ - "\36\0\5\22\1\114\1\115\3\22\1\116\1\22\1\117"+ - "\16\22\1\0\2\22\36\0\10\22\1\120\2\22\1\121"+ - "\17\22\1\0\2\22\36\0\2\22\1\122\1\123\1\124"+ - "\1\22\1\125\3\22\1\126\15\22\1\127\2\22\1\0"+ - "\2\22\36\0\5\22\1\130\2\22\1\131\7\22\1\132"+ - "\2\22\1\133\7\22\1\0\2\22\36\0\12\22\1\134"+ - "\1\22\1\135\16\22\1\0\2\22\36\0\33\22\1\0"+ - "\2\22\36\0\4\22\1\136\5\22\1\137\20\22\1\0"+ - "\2\22\36\0\1\22\1\140\3\22\1\141\4\22\1\142"+ - "\1\22\1\143\16\22\1\0\2\22\36\0\14\22\1\144"+ - "\16\22\1\0\2\22\36\0\5\22\1\145\1\146\24\22"+ - "\1\0\2\22\36\0\14\22\1\147\16\22\1\0\2\22"+ - "\36\0\6\22\1\150\20\22\1\151\3\22\1\0\2\22"+ - "\36\0\12\22\1\152\20\22\1\0\2\22\32\0\37\153"+ - "\1\0\34\153\42\0\1\154\71\0\2\35\1\154\73\0"+ - "\1\155\31\0\43\156\1\157\1\160\27\156\44\161\1\162"+ - "\1\157\26\161\46\0\1\163\1\164\117\0\1\165\60\0"+ - "\1\166\1\0\1\167\71\0\1\170\73\0\1\171\73\0"+ - "\1\172\17\0\2\22\1\173\5\22\1\174\22\22\1\0"+ - "\2\22\36\0\5\22\1\175\25\22\1\0\2\22\36\0"+ - "\11\22\1\176\15\22\1\177\3\22\1\0\2\22\36\0"+ - "\11\22\1\200\21\22\1\0\2\22\36\0\3\22\1\201"+ - "\7\22\1\202\17\22\1\0\2\22\36\0\15\22\1\203"+ - "\15\22\1\0\2\22\36\0\6\22\1\204\24\22\1\0"+ - "\2\22\36\0\7\22\1\205\23\22\1\0\2\22\36\0"+ - "\13\22\1\206\1\22\1\207\15\22\1\0\2\22\36\0"+ - "\6\22\1\210\24\22\1\0\2\22\36\0\16\22\1\211"+ - "\14\22\1\0\2\22\36\0\1\212\6\22\1\213\1\214"+ - "\22\22\1\0\2\22\36\0\23\22\1\215\7\22\1\0"+ - "\2\22\36\0\1\22\1\216\31\22\1\0\2\22\36\0"+ - "\1\217\1\22\1\220\6\22\1\221\3\22\1\222\3\22"+ - "\1\223\11\22\1\0\2\22\36\0\11\22\1\224\21\22"+ - "\1\0\2\22\36\0\13\22\1\225\17\22\1\0\2\22"+ - "\36\0\2\22\1\226\7\22\1\227\10\22\1\230\7\22"+ - "\1\0\2\22\36\0\12\22\1\231\4\22\1\232\13\22"+ - "\1\0\2\22\36\0\12\22\1\233\20\22\1\0\2\22"+ - "\36\0\15\22\1\234\15\22\1\0\2\22\36\0\2\22"+ - "\1\235\5\22\1\236\1\237\21\22\1\0\2\22\36\0"+ - "\14\22\1\240\16\22\1\0\2\22\36\0\2\22\1\241"+ - "\10\22\1\242\1\22\1\243\15\22\1\0\2\22\36\0"+ - "\13\22\1\244\17\22\1\0\2\22\36\0\11\22\1\245"+ - "\21\22\1\0\2\22\36\0\1\22\1\246\31\22\1\0"+ - "\2\22\36\0\1\22\1\247\31\22\1\0\2\22\36\0"+ - "\14\22\1\250\16\22\1\0\2\22\36\0\2\22\1\251"+ - "\30\22\1\0\2\22\36\0\10\22\1\252\22\22\1\0"+ - "\2\22\36\0\12\22\1\253\20\22\1\0\2\22\36\0"+ - "\11\22\1\254\21\22\1\0\2\22\36\0\2\22\1\255"+ - "\30\22\1\0\2\22\36\0\1\256\32\22\1\0\2\22"+ - "\36\0\1\22\1\257\31\22\1\0\2\22\36\0\6\22"+ - "\1\260\24\22\1\0\2\22\36\0\2\22\1\261\30\22"+ - "\1\0\2\22\36\0\15\22\1\262\15\22\1\0\2\22"+ - "\36\0\14\22\1\263\16\22\1\0\2\22\36\0\6\22"+ - "\1\264\6\22\1\265\15\22\1\0\2\22\36\0\5\22"+ - "\1\266\25\22\1\0\2\22\36\0\5\22\1\267\25\22"+ - "\1\0\2\22\36\0\14\22\1\270\16\22\1\0\2\22"+ - "\36\0\5\22\1\271\25\22\1\0\2\22\36\0\12\22"+ - "\1\272\20\22\1\0\2\22\36\0\24\22\1\273\6\22"+ - "\1\0\2\22\36\0\6\22\1\274\24\22\1\0\2\22"+ - "\32\0\37\153\1\275\34\153\40\0\2\276\32\0\1\156"+ - "\2\0\71\156\1\161\2\0\71\161\2\163\1\0\71\163"+ - "\47\164\1\277\24\164\4\0\3\22\1\300\27\22\1\0"+ - "\2\22\36\0\11\22\1\301\21\22\1\0\2\22\36\0"+ - "\24\22\1\302\6\22\1\0\2\22\36\0\6\22\1\303"+ - "\24\22\1\0\2\22\36\0\6\22\1\304\24\22\1\0"+ - "\2\22\36\0\13\22\1\305\17\22\1\0\2\22\36\0"+ - "\10\22\1\306\22\22\1\0\2\22\36\0\6\22\1\307"+ - "\24\22\1\0\2\22\36\0\6\22\1\310\24\22\1\0"+ - "\2\22\36\0\15\22\1\311\15\22\1\0\2\22\36\0"+ - "\1\22\1\312\31\22\1\0\2\22\36\0\1\313\32\22"+ - "\1\0\2\22\36\0\10\22\1\314\22\22\1\0\2\22"+ - "\36\0\2\22\1\315\10\22\1\316\17\22\1\0\2\22"+ - "\36\0\4\22\1\317\26\22\1\0\2\22\36\0\11\22"+ - "\1\320\21\22\1\0\2\22\36\0\14\22\1\321\16\22"+ - "\1\0\2\22\36\0\7\22\1\322\23\22\1\0\2\22"+ - "\36\0\7\22\1\323\23\22\1\0\2\22\36\0\1\22"+ - "\1\324\31\22\1\0\2\22\36\0\7\22\1\325\23\22"+ - "\1\0\2\22\36\0\13\22\1\326\17\22\1\0\2\22"+ - "\36\0\6\22\1\327\24\22\1\0\2\22\36\0\5\22"+ - "\1\330\25\22\1\0\2\22\36\0\13\22\1\331\17\22"+ - "\1\0\2\22\36\0\15\22\1\332\15\22\1\0\2\22"+ - "\36\0\14\22\1\333\4\22\1\334\11\22\1\0\2\22"+ - "\36\0\12\22\1\335\20\22\1\0\2\22\36\0\10\22"+ - "\1\336\22\22\1\0\2\22\36\0\15\22\1\337\15\22"+ - "\1\0\2\22\36\0\6\22\1\340\24\22\1\0\2\22"+ - "\36\0\6\22\1\341\24\22\1\0\2\22\36\0\23\22"+ - "\1\342\7\22\1\0\2\22\36\0\1\22\1\343\31\22"+ - "\1\0\2\22\36\0\3\22\1\344\27\22\1\0\2\22"+ - "\36\0\6\22\1\345\24\22\1\0\2\22\36\0\2\22"+ - "\1\346\30\22\1\0\2\22\36\0\6\22\1\347\24\22"+ - "\1\0\2\22\36\0\5\22\1\350\25\22\1\0\2\22"+ - "\36\0\10\22\1\351\4\22\1\352\15\22\1\0\2\22"+ - "\36\0\5\22\1\353\25\22\1\0\2\22\36\0\24\22"+ - "\1\354\6\22\1\0\2\22\36\0\23\22\1\355\7\22"+ - "\1\0\2\22\36\0\6\22\1\356\24\22\1\0\2\22"+ - "\36\0\12\22\1\357\20\22\1\0\2\22\36\0\12\22"+ - "\1\360\20\22\1\0\2\22\36\0\11\22\1\361\21\22"+ - "\1\0\2\22\36\0\5\22\1\362\2\22\1\363\22\22"+ - "\1\0\2\22\36\0\4\22\1\364\26\22\1\0\2\22"+ - "\36\0\13\22\1\365\17\22\1\0\2\22\36\0\1\366"+ - "\32\22\1\0\2\22\36\0\15\22\1\367\15\22\1\0"+ - "\2\22\36\0\2\22\1\370\30\22\1\0\2\22\36\0"+ - "\6\22\1\371\24\22\1\0\2\22\36\0\20\22\1\372"+ - "\12\22\1\0\2\22\36\0\12\22\1\373\20\22\1\0"+ - "\2\22\36\0\10\22\1\374\22\22\1\0\2\22\36\0"+ - "\12\22\1\375\20\22\1\0\2\22\36\0\15\22\1\376"+ - "\15\22\1\0\2\22\32\0\46\164\1\377\1\u0100\24\164"+ - "\4\0\4\22\1\u0101\26\22\1\0\2\22\36\0\1\22"+ - "\1\u0102\31\22\1\0\2\22\36\0\6\22\1\u0103\24\22"+ - "\1\0\2\22\36\0\10\22\1\u0104\22\22\1\0\2\22"+ - "\36\0\5\22\1\u0105\25\22\1\0\2\22\36\0\4\22"+ - "\1\u0106\26\22\1\0\2\22\36\0\2\22\1\u0107\30\22"+ - "\1\0\2\22\36\0\12\22\1\u0108\20\22\1\0\2\22"+ - "\36\0\2\22\1\u0109\30\22\1\0\2\22\36\0\1\22"+ - "\1\u010a\31\22\1\0\2\22\36\0\2\22\1\u010b\30\22"+ - "\1\0\2\22\36\0\6\22\1\u010c\24\22\1\0\2\22"+ - "\36\0\6\22\1\u010d\24\22\1\0\2\22\36\0\16\22"+ - "\1\u010e\14\22\1\0\2\22\36\0\5\22\1\u010f\25\22"+ - "\1\0\2\22\36\0\3\22\1\u0110\27\22\1\0\2\22"+ - "\36\0\2\22\1\u0111\30\22\1\0\2\22\36\0\12\22"+ - "\1\u0112\20\22\1\0\2\22\36\0\1\22\1\u0113\31\22"+ - "\1\0\2\22\36\0\2\22\1\u0114\30\22\1\0\2\22"+ - "\36\0\1\22\1\u0115\31\22\1\0\2\22\36\0\10\22"+ - "\1\u0116\22\22\1\0\2\22\36\0\7\22\1\u0117\23\22"+ - "\1\0\2\22\36\0\10\22\1\u0118\22\22\1\0\2\22"+ - "\36\0\24\22\1\u0119\6\22\1\0\2\22\36\0\3\22"+ - "\1\u011a\27\22\1\0\2\22\36\0\6\22\1\u011b\24\22"+ - "\1\0\2\22\36\0\2\22\1\u011c\30\22\1\0\2\22"+ - "\36\0\12\22\1\u011d\20\22\1\0\2\22\36\0\22\22"+ - "\1\u011e\10\22\1\0\2\22\36\0\2\22\1\u011f\30\22"+ - "\1\0\2\22\36\0\1\22\1\u0120\31\22\1\0\2\22"+ - "\36\0\2\22\1\u0121\30\22\1\0\2\22\36\0\15\22"+ - "\1\u0122\15\22\1\0\2\22\36\0\5\22\1\u0123\25\22"+ - "\1\0\2\22\36\0\14\22\1\u0124\16\22\1\0\2\22"+ - "\36\0\2\22\1\u0125\30\22\1\0\2\22\36\0\6\22"+ - "\1\u0126\24\22\1\0\2\22\36\0\6\22\1\u0127\24\22"+ - "\1\0\2\22\36\0\11\22\1\u0128\21\22\1\0\2\22"+ - "\36\0\6\22\1\u0129\24\22\1\0\2\22\36\0\1\22"+ - "\1\u012a\31\22\1\0\2\22\36\0\12\22\1\u012b\20\22"+ - "\1\0\2\22\36\0\14\22\1\u012c\16\22\1\0\2\22"+ - "\36\0\10\22\1\u012d\22\22\1\0\2\22\36\0\11\22"+ - "\1\u012e\21\22\1\0\2\22\36\0\2\22\1\u012f\30\22"+ - "\1\0\2\22\36\0\11\22\1\u0130\21\22\1\0\2\22"+ - "\36\0\2\22\1\u0131\30\22\1\0\2\22\36\0\14\22"+ - "\1\u0132\16\22\1\0\2\22\36\0\6\22\1\u0133\24\22"+ - "\1\0\2\22\36\0\2\22\1\u0134\30\22\1\0\2\22"+ - "\36\0\12\22\1\u0135\20\22\1\0\2\22\36\0\5\22"+ - "\1\u0136\25\22\1\0\2\22\36\0\5\22\1\u0137\25\22"+ - "\1\0\2\22\36\0\5\22\1\u0138\25\22\1\0\2\22"+ - "\36\0\6\22\1\u0139\24\22\1\0\2\22\36\0\10\22"+ - "\1\u013a\22\22\1\0\2\22\36\0\6\22\1\u013b\24\22"+ - "\1\0\2\22\36\0\12\22\1\u013c\20\22\1\0\2\22"+ - "\36\0\5\22\1\u013d\25\22\1\0\2\22\36\0\3\22"+ - "\1\u013e\27\22\1\0\2\22\36\0\13\22\1\u013f\17\22"+ - "\1\0\2\22\36\0\12\22\1\u0140\20\22\1\0\2\22"+ - "\36\0\6\22\1\u0141\24\22\1\0\2\22\36\0\11\22"+ - "\1\u0142\21\22\1\0\2\22\36\0\4\22\1\u0143\26\22"+ - "\1\0\2\22\36\0\10\22\1\u0144\22\22\1\0\2\22"+ - "\36\0\6\22\1\u0145\24\22\1\0\2\22\36\0\10\22"+ - "\1\u0146\22\22\1\0\2\22\36\0\13\22\1\u0147\17\22"+ - "\1\0\2\22\36\0\5\22\1\u0148\25\22\1\0\2\22"+ - "\36\0\6\22\1\u0149\24\22\1\0\2\22\36\0\6\22"+ - "\1\u014a\24\22\1\0\2\22\36\0\10\22\1\u014b\22\22"+ - "\1\0\2\22\36\0\2\22\1\u014c\30\22\1\0\2\22"+ - "\36\0\5\22\1\u014d\25\22\1\0\2\22\36\0\3\22"+ - "\1\u014e\27\22\1\0\2\22\36\0\15\22\1\u014f\15\22"+ - "\1\0\2\22\36\0\11\22\1\u0150\21\22\1\0\2\22"+ - "\36\0\14\22\1\u0151\16\22\1\0\2\22\36\0\12\22"+ - "\1\u0152\20\22\1\0\2\22\36\0\5\22\1\u0153\25\22"+ - "\1\0\2\22\36\0\10\22\1\u0154\22\22\1\0\2\22"+ - "\36\0\1\22\1\u0155\31\22\1\0\2\22\36\0\13\22"+ - "\1\u0156\17\22\1\0\2\22\36\0\14\22\1\u0157\16\22"+ - "\1\0\2\22\36\0\6\22\1\u0158\24\22\1\0\2\22"+ - "\36\0\2\22\1\u0159\30\22\1\0\2\22\36\0\10\22"+ - "\1\u015a\22\22\1\0\2\22\36\0\11\22\1\u015b\21\22"+ - "\1\0\2\22\36\0\3\22\1\u015c\27\22\1\0\2\22"+ - "\36\0\13\22\1\u015d\17\22\1\0\2\22\36\0\1\22"+ - "\1\u015e\31\22\1\0\2\22\36\0\6\22\1\u015f\24\22"+ - "\1\0\2\22\36\0\4\22\1\u0160\26\22\1\0\2\22"+ - "\36\0\6\22\1\u0161\24\22\1\0\2\22\36\0\12\22"+ - "\1\u0162\20\22\1\0\2\22\36\0\5\22\1\u0163\25\22"+ - "\1\0\2\22\36\0\10\22\1\u0164\22\22\1\0\2\22"+ - "\36\0\2\22\1\u0165\30\22\1\0\2\22\36\0\13\22"+ - "\1\u0166\17\22\1\0\2\22\36\0\12\22\1\u0167\20\22"+ - "\1\0\2\22\36\0\10\22\1\u0168\22\22\1\0\2\22"+ - "\36\0\12\22\1\u0169\20\22\1\0\2\22\36\0\2\22"+ - "\1\u016a\30\22\1\0\2\22\36\0\2\22\1\u016b\30\22"+ - "\1\0\2\22\36\0\15\22\1\u016c\15\22\1\0\2\22"+ - "\36\0\5\22\1\u016d\25\22\1\0\2\22\36\0\3\22"+ - "\1\u016e\27\22\1\0\2\22\36\0\27\22\1\u016f\3\22"+ - "\1\0\2\22\36\0\24\22\1\u0170\6\22\1\0\2\22"+ - "\36\0\6\22\1\u0171\24\22\1\0\2\22\36\0\10\22"+ - "\1\u0172\22\22\1\0\2\22\36\0\13\22\1\u0173\17\22"+ - "\1\0\2\22\36\0\10\22\1\u0174\22\22\1\0\2\22"+ - "\36\0\23\22\1\u0175\7\22\1\0\2\22\36\0\1\u0176"+ - "\32\22\1\0\2\22\36\0\13\22\1\u0177\17\22\1\0"+ - "\2\22\36\0\2\22\1\u0178\30\22\1\0\2\22\36\0"+ - "\4\22\1\u0179\26\22\1\0\2\22\36\0\24\22\1\u017a"+ - "\6\22\1\0\2\22\36\0\1\22\1\u017b\31\22\1\0"+ - "\2\22\36\0\12\22\1\u017c\20\22\1\0\2\22\36\0"+ - "\2\22\1\u017d\30\22\1\0\2\22\36\0\12\22\1\u017e"+ - "\20\22\1\0\2\22\36\0\2\22\1\u017f\30\22\1\0"+ - "\2\22\36\0\10\22\1\u0180\22\22\1\0\2\22\36\0"+ - "\23\22\1\u0181\7\22\1\0\2\22\36\0\23\22\1\u0182"+ - "\7\22\1\0\2\22\36\0\4\22\1\u0183\26\22\1\0"+ - "\2\22\36\0\1\22\1\u0184\31\22\1\0\2\22\36\0"+ - "\1\22\1\u0185\31\22\1\0\2\22\36\0\2\22\1\u0186"+ - "\30\22\1\0\2\22\36\0\2\22\1\u0187\30\22\1\0"+ - "\2\22\36\0\14\22\1\u0188\16\22\1\0\2\22\36\0"+ - "\4\22\1\u0189\26\22\1\0\2\22\36\0\5\22\1\u018a"+ - "\25\22\1\0\2\22\36\0\13\22\1\u018b\17\22\1\0"+ - "\2\22\32\0"; + "\1\66\1\2\75\0\3\3\74\0\1\22\1\67\4\22"+ + "\1\70\24\22\1\0\2\22\36\0\10\22\1\71\1\72"+ + "\1\22\1\73\1\22\1\74\15\22\1\0\2\22\36\0"+ + "\4\22\1\75\1\76\25\22\1\0\2\22\36\0\1\22"+ + "\1\77\3\22\1\100\5\22\1\101\1\102\12\22\1\103"+ + "\3\22\1\0\2\22\36\0\6\22\1\104\24\22\1\0"+ + "\2\22\36\0\6\22\1\105\24\22\1\0\2\22\36\0"+ + "\10\22\1\106\4\22\1\107\4\22\1\110\10\22\1\0"+ + "\2\22\36\0\10\22\1\111\2\22\1\112\17\22\1\0"+ + "\2\22\36\0\7\22\1\113\4\22\1\114\16\22\1\0"+ + "\2\22\36\0\5\22\1\115\1\116\3\22\1\117\1\22"+ + "\1\120\16\22\1\0\2\22\36\0\10\22\1\121\2\22"+ + "\1\122\17\22\1\0\2\22\36\0\2\22\1\123\1\124"+ + "\1\125\1\22\1\126\3\22\1\127\15\22\1\130\2\22"+ + "\1\0\2\22\36\0\5\22\1\131\2\22\1\132\7\22"+ + "\1\133\2\22\1\134\7\22\1\0\2\22\36\0\12\22"+ + "\1\135\1\22\1\136\16\22\1\0\2\22\36\0\33\22"+ + "\1\0\2\22\36\0\4\22\1\137\5\22\1\140\20\22"+ + "\1\0\2\22\36\0\1\22\1\141\3\22\1\142\4\22"+ + "\1\143\1\22\1\144\16\22\1\0\2\22\36\0\14\22"+ + "\1\145\16\22\1\0\2\22\36\0\5\22\1\146\1\147"+ + "\24\22\1\0\2\22\36\0\14\22\1\150\16\22\1\0"+ + "\2\22\36\0\6\22\1\151\20\22\1\152\3\22\1\0"+ + "\2\22\36\0\12\22\1\153\20\22\1\0\2\22\36\0"+ + "\6\22\1\154\24\22\1\0\2\22\32\0\37\155\1\0"+ + "\34\155\42\0\1\156\71\0\2\36\1\156\73\0\1\157"+ + "\31\0\43\160\1\161\1\162\27\160\44\163\1\164\1\161"+ + "\26\163\46\0\1\165\1\166\117\0\1\167\60\0\1\170"+ + "\1\0\1\171\71\0\1\172\73\0\1\173\73\0\1\174"+ + "\17\0\2\22\1\175\5\22\1\176\22\22\1\0\2\22"+ + "\36\0\5\22\1\177\25\22\1\0\2\22\36\0\11\22"+ + "\1\200\15\22\1\201\3\22\1\0\2\22\36\0\11\22"+ + "\1\202\21\22\1\0\2\22\36\0\3\22\1\203\7\22"+ + "\1\204\17\22\1\0\2\22\36\0\15\22\1\205\15\22"+ + "\1\0\2\22\36\0\6\22\1\206\24\22\1\0\2\22"+ + "\36\0\7\22\1\207\23\22\1\0\2\22\36\0\13\22"+ + "\1\210\1\22\1\211\15\22\1\0\2\22\36\0\6\22"+ + "\1\212\24\22\1\0\2\22\36\0\16\22\1\213\14\22"+ + "\1\0\2\22\36\0\1\214\6\22\1\215\1\216\22\22"+ + "\1\0\2\22\36\0\23\22\1\217\7\22\1\0\2\22"+ + "\36\0\1\22\1\220\31\22\1\0\2\22\36\0\1\221"+ + "\1\22\1\222\6\22\1\223\3\22\1\224\3\22\1\225"+ + "\11\22\1\0\2\22\36\0\11\22\1\226\21\22\1\0"+ + "\2\22\36\0\13\22\1\227\17\22\1\0\2\22\36\0"+ + "\2\22\1\230\7\22\1\231\10\22\1\232\7\22\1\0"+ + "\2\22\36\0\12\22\1\233\4\22\1\234\13\22\1\0"+ + "\2\22\36\0\12\22\1\235\20\22\1\0\2\22\36\0"+ + "\15\22\1\236\15\22\1\0\2\22\36\0\2\22\1\237"+ + "\5\22\1\240\1\241\21\22\1\0\2\22\36\0\14\22"+ + "\1\242\16\22\1\0\2\22\36\0\2\22\1\243\10\22"+ + "\1\244\1\22\1\245\15\22\1\0\2\22\36\0\13\22"+ + "\1\246\17\22\1\0\2\22\36\0\11\22\1\247\21\22"+ + "\1\0\2\22\36\0\1\22\1\250\31\22\1\0\2\22"+ + "\36\0\1\22\1\251\31\22\1\0\2\22\36\0\14\22"+ + "\1\252\16\22\1\0\2\22\36\0\2\22\1\253\30\22"+ + "\1\0\2\22\36\0\10\22\1\254\22\22\1\0\2\22"+ + "\36\0\12\22\1\255\20\22\1\0\2\22\36\0\11\22"+ + "\1\256\21\22\1\0\2\22\36\0\2\22\1\257\30\22"+ + "\1\0\2\22\36\0\1\260\32\22\1\0\2\22\36\0"+ + "\1\22\1\261\31\22\1\0\2\22\36\0\6\22\1\262"+ + "\24\22\1\0\2\22\36\0\2\22\1\263\30\22\1\0"+ + "\2\22\36\0\15\22\1\264\15\22\1\0\2\22\36\0"+ + "\14\22\1\265\16\22\1\0\2\22\36\0\6\22\1\266"+ + "\6\22\1\267\15\22\1\0\2\22\36\0\5\22\1\270"+ + "\25\22\1\0\2\22\36\0\5\22\1\271\25\22\1\0"+ + "\2\22\36\0\14\22\1\272\16\22\1\0\2\22\36\0"+ + "\5\22\1\273\25\22\1\0\2\22\36\0\12\22\1\274"+ + "\20\22\1\0\2\22\36\0\24\22\1\275\6\22\1\0"+ + "\2\22\36\0\6\22\1\276\24\22\1\0\2\22\36\0"+ + "\27\22\1\277\3\22\1\0\2\22\32\0\37\155\1\300"+ + "\34\155\40\0\2\301\32\0\1\160\2\0\71\160\1\163"+ + "\2\0\71\163\2\165\1\0\71\165\47\166\1\302\24\166"+ + "\4\0\3\22\1\303\27\22\1\0\2\22\36\0\11\22"+ + "\1\304\21\22\1\0\2\22\36\0\24\22\1\305\6\22"+ + "\1\0\2\22\36\0\6\22\1\306\24\22\1\0\2\22"+ + "\36\0\6\22\1\307\24\22\1\0\2\22\36\0\13\22"+ + "\1\310\17\22\1\0\2\22\36\0\10\22\1\311\22\22"+ + "\1\0\2\22\36\0\6\22\1\312\24\22\1\0\2\22"+ + "\36\0\6\22\1\313\24\22\1\0\2\22\36\0\15\22"+ + "\1\314\15\22\1\0\2\22\36\0\1\22\1\315\31\22"+ + "\1\0\2\22\36\0\1\316\32\22\1\0\2\22\36\0"+ + "\10\22\1\317\22\22\1\0\2\22\36\0\2\22\1\320"+ + "\10\22\1\321\17\22\1\0\2\22\36\0\4\22\1\322"+ + "\26\22\1\0\2\22\36\0\11\22\1\323\21\22\1\0"+ + "\2\22\36\0\14\22\1\324\16\22\1\0\2\22\36\0"+ + "\7\22\1\325\23\22\1\0\2\22\36\0\7\22\1\326"+ + "\23\22\1\0\2\22\36\0\1\22\1\327\31\22\1\0"+ + "\2\22\36\0\7\22\1\330\23\22\1\0\2\22\36\0"+ + "\13\22\1\331\17\22\1\0\2\22\36\0\6\22\1\332"+ + "\24\22\1\0\2\22\36\0\5\22\1\333\25\22\1\0"+ + "\2\22\36\0\13\22\1\334\17\22\1\0\2\22\36\0"+ + "\15\22\1\335\15\22\1\0\2\22\36\0\14\22\1\336"+ + "\4\22\1\337\11\22\1\0\2\22\36\0\12\22\1\340"+ + "\20\22\1\0\2\22\36\0\10\22\1\341\22\22\1\0"+ + "\2\22\36\0\15\22\1\342\15\22\1\0\2\22\36\0"+ + "\6\22\1\343\24\22\1\0\2\22\36\0\6\22\1\344"+ + "\24\22\1\0\2\22\36\0\23\22\1\345\7\22\1\0"+ + "\2\22\36\0\1\22\1\346\31\22\1\0\2\22\36\0"+ + "\3\22\1\347\27\22\1\0\2\22\36\0\6\22\1\350"+ + "\24\22\1\0\2\22\36\0\2\22\1\351\30\22\1\0"+ + "\2\22\36\0\6\22\1\352\24\22\1\0\2\22\36\0"+ + "\5\22\1\353\25\22\1\0\2\22\36\0\10\22\1\354"+ + "\4\22\1\355\15\22\1\0\2\22\36\0\5\22\1\356"+ + "\25\22\1\0\2\22\36\0\24\22\1\357\6\22\1\0"+ + "\2\22\36\0\23\22\1\360\7\22\1\0\2\22\36\0"+ + "\6\22\1\361\24\22\1\0\2\22\36\0\12\22\1\362"+ + "\20\22\1\0\2\22\36\0\12\22\1\363\20\22\1\0"+ + "\2\22\36\0\11\22\1\364\21\22\1\0\2\22\36\0"+ + "\5\22\1\365\2\22\1\366\22\22\1\0\2\22\36\0"+ + "\4\22\1\367\26\22\1\0\2\22\36\0\13\22\1\370"+ + "\17\22\1\0\2\22\36\0\1\371\32\22\1\0\2\22"+ + "\36\0\15\22\1\372\15\22\1\0\2\22\36\0\2\22"+ + "\1\373\30\22\1\0\2\22\36\0\6\22\1\374\24\22"+ + "\1\0\2\22\36\0\20\22\1\375\12\22\1\0\2\22"+ + "\36\0\12\22\1\376\20\22\1\0\2\22\36\0\10\22"+ + "\1\377\22\22\1\0\2\22\36\0\12\22\1\u0100\20\22"+ + "\1\0\2\22\36\0\15\22\1\u0101\15\22\1\0\2\22"+ + "\32\0\46\166\1\u0102\1\u0103\24\166\4\0\4\22\1\u0104"+ + "\26\22\1\0\2\22\36\0\1\22\1\u0105\31\22\1\0"+ + "\2\22\36\0\6\22\1\u0106\24\22\1\0\2\22\36\0"+ + "\10\22\1\u0107\22\22\1\0\2\22\36\0\5\22\1\u0108"+ + "\25\22\1\0\2\22\36\0\4\22\1\u0109\26\22\1\0"+ + "\2\22\36\0\2\22\1\u010a\30\22\1\0\2\22\36\0"+ + "\12\22\1\u010b\20\22\1\0\2\22\36\0\2\22\1\u010c"+ + "\30\22\1\0\2\22\36\0\1\22\1\u010d\31\22\1\0"+ + "\2\22\36\0\2\22\1\u010e\30\22\1\0\2\22\36\0"+ + "\6\22\1\u010f\24\22\1\0\2\22\36\0\6\22\1\u0110"+ + "\24\22\1\0\2\22\36\0\16\22\1\u0111\14\22\1\0"+ + "\2\22\36\0\5\22\1\u0112\25\22\1\0\2\22\36\0"+ + "\3\22\1\u0113\27\22\1\0\2\22\36\0\2\22\1\u0114"+ + "\30\22\1\0\2\22\36\0\12\22\1\u0115\20\22\1\0"+ + "\2\22\36\0\1\22\1\u0116\31\22\1\0\2\22\36\0"+ + "\2\22\1\u0117\30\22\1\0\2\22\36\0\1\22\1\u0118"+ + "\31\22\1\0\2\22\36\0\10\22\1\u0119\22\22\1\0"+ + "\2\22\36\0\7\22\1\u011a\23\22\1\0\2\22\36\0"+ + "\10\22\1\u011b\22\22\1\0\2\22\36\0\24\22\1\u011c"+ + "\6\22\1\0\2\22\36\0\3\22\1\u011d\27\22\1\0"+ + "\2\22\36\0\6\22\1\u011e\24\22\1\0\2\22\36\0"+ + "\2\22\1\u011f\30\22\1\0\2\22\36\0\12\22\1\u0120"+ + "\20\22\1\0\2\22\36\0\22\22\1\u0121\10\22\1\0"+ + "\2\22\36\0\2\22\1\u0122\30\22\1\0\2\22\36\0"+ + "\1\22\1\u0123\31\22\1\0\2\22\36\0\2\22\1\u0124"+ + "\30\22\1\0\2\22\36\0\15\22\1\u0125\15\22\1\0"+ + "\2\22\36\0\5\22\1\u0126\25\22\1\0\2\22\36\0"+ + "\14\22\1\u0127\16\22\1\0\2\22\36\0\2\22\1\u0128"+ + "\30\22\1\0\2\22\36\0\6\22\1\u0129\24\22\1\0"+ + "\2\22\36\0\6\22\1\u012a\24\22\1\0\2\22\36\0"+ + "\11\22\1\u012b\21\22\1\0\2\22\36\0\6\22\1\u012c"+ + "\24\22\1\0\2\22\36\0\1\22\1\u012d\31\22\1\0"+ + "\2\22\36\0\12\22\1\u012e\20\22\1\0\2\22\36\0"+ + "\14\22\1\u012f\16\22\1\0\2\22\36\0\10\22\1\u0130"+ + "\22\22\1\0\2\22\36\0\11\22\1\u0131\21\22\1\0"+ + "\2\22\36\0\2\22\1\u0132\30\22\1\0\2\22\36\0"+ + "\11\22\1\u0133\21\22\1\0\2\22\36\0\2\22\1\u0134"+ + "\30\22\1\0\2\22\36\0\14\22\1\u0135\16\22\1\0"+ + "\2\22\36\0\6\22\1\u0136\24\22\1\0\2\22\36\0"+ + "\2\22\1\u0137\30\22\1\0\2\22\36\0\12\22\1\u0138"+ + "\20\22\1\0\2\22\36\0\5\22\1\u0139\25\22\1\0"+ + "\2\22\36\0\5\22\1\u013a\25\22\1\0\2\22\36\0"+ + "\5\22\1\u013b\25\22\1\0\2\22\36\0\6\22\1\u013c"+ + "\24\22\1\0\2\22\36\0\10\22\1\u013d\22\22\1\0"+ + "\2\22\36\0\6\22\1\u013e\24\22\1\0\2\22\36\0"+ + "\12\22\1\u013f\20\22\1\0\2\22\36\0\5\22\1\u0140"+ + "\25\22\1\0\2\22\36\0\3\22\1\u0141\27\22\1\0"+ + "\2\22\36\0\13\22\1\u0142\17\22\1\0\2\22\36\0"+ + "\12\22\1\u0143\20\22\1\0\2\22\36\0\6\22\1\u0144"+ + "\24\22\1\0\2\22\36\0\11\22\1\u0145\21\22\1\0"+ + "\2\22\36\0\4\22\1\u0146\26\22\1\0\2\22\36\0"+ + "\10\22\1\u0147\22\22\1\0\2\22\36\0\6\22\1\u0148"+ + "\24\22\1\0\2\22\36\0\10\22\1\u0149\22\22\1\0"+ + "\2\22\36\0\13\22\1\u014a\17\22\1\0\2\22\36\0"+ + "\5\22\1\u014b\25\22\1\0\2\22\36\0\6\22\1\u014c"+ + "\24\22\1\0\2\22\36\0\6\22\1\u014d\24\22\1\0"+ + "\2\22\36\0\10\22\1\u014e\22\22\1\0\2\22\36\0"+ + "\2\22\1\u014f\30\22\1\0\2\22\36\0\5\22\1\u0150"+ + "\25\22\1\0\2\22\36\0\3\22\1\u0151\27\22\1\0"+ + "\2\22\36\0\15\22\1\u0152\15\22\1\0\2\22\36\0"+ + "\11\22\1\u0153\21\22\1\0\2\22\36\0\14\22\1\u0154"+ + "\16\22\1\0\2\22\36\0\12\22\1\u0155\20\22\1\0"+ + "\2\22\36\0\5\22\1\u0156\25\22\1\0\2\22\36\0"+ + "\10\22\1\u0157\22\22\1\0\2\22\36\0\1\22\1\u0158"+ + "\31\22\1\0\2\22\36\0\13\22\1\u0159\17\22\1\0"+ + "\2\22\36\0\14\22\1\u015a\16\22\1\0\2\22\36\0"+ + "\6\22\1\u015b\24\22\1\0\2\22\36\0\2\22\1\u015c"+ + "\30\22\1\0\2\22\36\0\10\22\1\u015d\22\22\1\0"+ + "\2\22\36\0\11\22\1\u015e\21\22\1\0\2\22\36\0"+ + "\3\22\1\u015f\27\22\1\0\2\22\36\0\13\22\1\u0160"+ + "\17\22\1\0\2\22\36\0\1\22\1\u0161\31\22\1\0"+ + "\2\22\36\0\6\22\1\u0162\24\22\1\0\2\22\36\0"+ + "\4\22\1\u0163\26\22\1\0\2\22\36\0\6\22\1\u0164"+ + "\24\22\1\0\2\22\36\0\12\22\1\u0165\20\22\1\0"+ + "\2\22\36\0\5\22\1\u0166\25\22\1\0\2\22\36\0"+ + "\10\22\1\u0167\22\22\1\0\2\22\36\0\2\22\1\u0168"+ + "\30\22\1\0\2\22\36\0\13\22\1\u0169\17\22\1\0"+ + "\2\22\36\0\12\22\1\u016a\20\22\1\0\2\22\36\0"+ + "\10\22\1\u016b\22\22\1\0\2\22\36\0\12\22\1\u016c"+ + "\20\22\1\0\2\22\36\0\2\22\1\u016d\30\22\1\0"+ + "\2\22\36\0\2\22\1\u016e\30\22\1\0\2\22\36\0"+ + "\15\22\1\u016f\15\22\1\0\2\22\36\0\5\22\1\u0170"+ + "\25\22\1\0\2\22\36\0\3\22\1\u0171\27\22\1\0"+ + "\2\22\36\0\27\22\1\u0172\3\22\1\0\2\22\36\0"+ + "\24\22\1\u0173\6\22\1\0\2\22\36\0\6\22\1\u0174"+ + "\24\22\1\0\2\22\36\0\10\22\1\u0175\22\22\1\0"+ + "\2\22\36\0\13\22\1\u0176\17\22\1\0\2\22\36\0"+ + "\10\22\1\u0177\22\22\1\0\2\22\36\0\23\22\1\u0178"+ + "\7\22\1\0\2\22\36\0\1\u0179\32\22\1\0\2\22"+ + "\36\0\13\22\1\u017a\17\22\1\0\2\22\36\0\2\22"+ + "\1\u017b\30\22\1\0\2\22\36\0\4\22\1\u017c\26\22"+ + "\1\0\2\22\36\0\24\22\1\u017d\6\22\1\0\2\22"+ + "\36\0\1\22\1\u017e\31\22\1\0\2\22\36\0\12\22"+ + "\1\u017f\20\22\1\0\2\22\36\0\2\22\1\u0180\30\22"+ + "\1\0\2\22\36\0\12\22\1\u0181\20\22\1\0\2\22"+ + "\36\0\2\22\1\u0182\30\22\1\0\2\22\36\0\10\22"+ + "\1\u0183\22\22\1\0\2\22\36\0\23\22\1\u0184\7\22"+ + "\1\0\2\22\36\0\23\22\1\u0185\7\22\1\0\2\22"+ + "\36\0\4\22\1\u0186\26\22\1\0\2\22\36\0\1\22"+ + "\1\u0187\31\22\1\0\2\22\36\0\1\22\1\u0188\31\22"+ + "\1\0\2\22\36\0\2\22\1\u0189\30\22\1\0\2\22"+ + "\36\0\2\22\1\u018a\30\22\1\0\2\22\36\0\14\22"+ + "\1\u018b\16\22\1\0\2\22\36\0\4\22\1\u018c\26\22"+ + "\1\0\2\22\36\0\5\22\1\u018d\25\22\1\0\2\22"+ + "\36\0\13\22\1\u018e\17\22\1\0\2\22\32\0"; private static int [] zzUnpackTrans() { - int [] result = new int[17400]; + int [] result = new int[17520]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -466,12 +467,12 @@ private static int zzUnpackTrans(String packed, int offset, int [] result) { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\27\1\1\11\7\1\11\11\4\1\4\11"+ - "\1\1\2\11\65\1\2\0\1\11\1\0\1\11\3\0"+ - "\2\1\6\11\102\1\1\11\101\1\1\11\1\0\213\1"; + "\1\0\1\11\30\1\1\11\7\1\11\11\4\1\4\11"+ + "\1\1\2\11\66\1\2\0\1\11\1\0\1\11\3\0"+ + "\2\1\6\11\103\1\1\11\101\1\1\11\1\0\213\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[395]; + int [] result = new int[398]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -644,7 +645,7 @@ public final int yylength() { /** - * Reports an error that occured while scanning. + * Reports an error that occurred while scanning. * * In a wellformed scanner (no or only correct usage of * yypushback(int) and a match-all fallback rule) this method @@ -780,622 +781,627 @@ else if (zzAtEOF) { { return BAD_CHARACTER; } // fall through - case 125: break; + case 126: break; case 2: { return WHITE_SPACE; } // fall through - case 126: break; + case 127: break; case 3: { return L_IDENTIFIER; } // fall through - case 127: break; + case 128: break; case 4: { return DOLLAR; } // fall through - case 128: break; + case 129: break; case 5: { return OP_BACTICK; } // fall through - case 129: break; + case 130: break; case 6: { return L_INTEGER; } // fall through - case 130: break; + case 131: break; case 7: { return OP_DOT; } // fall through - case 131: break; + case 132: break; case 8: { return OP_DIVIDE; } // fall through - case 132: break; + case 133: break; case 9: { return OP_MUL; } // fall through - case 133: break; + case 134: break; case 10: { return SEMICOLON; } // fall through - case 134: break; + case 135: break; case 11: { return PARENTHESE_OPEN; } // fall through - case 135: break; + case 136: break; case 12: { return PARENTHESE_CLOSE; } // fall through - case 136: break; + case 137: break; case 13: { return BRACKET_CURLYOPEN; } // fall through - case 137: break; + case 138: break; case 14: { return BRACKET_CURLYCLOSE; } // fall through - case 138: break; + case 139: break; case 15: { return BRACKET_SQUAREOPEN; } // fall through - case 139: break; + case 140: break; case 16: { return BRACKET_SQUARECLOSE; } // fall through - case 140: break; + case 141: break; case 17: { return OP_COLON; } // fall through - case 141: break; + case 142: break; case 18: { return OP_EQUAL; } // fall through - case 142: break; + case 143: break; case 19: { return OP_LESSTHEN; } // fall through - case 143: break; + case 144: break; case 20: { return OP_GREATHERTHEN; } // fall through - case 144: break; + case 145: break; case 21: { return OP_PLUS; } // fall through - case 145: break; + case 146: break; case 22: { return OP_MINUS; } // fall through - case 146: break; + case 147: break; case 23: { return OP_COMMA; } // fall through - case 147: break; + case 148: break; case 24: { return OP_QUESTIONSIGN; } // fall through - case 148: break; + case 149: break; case 25: { return OP_PIPE; } // fall through - case 149: break; + case 150: break; case 26: { return OP_MODULO; } // fall through - case 150: break; + case 151: break; case 27: { return OP_POW; } // fall through - case 151: break; + case 152: break; case 28: { return K_AS; } // fall through - case 152: break; + case 153: break; case 29: { return K_DO; } // fall through - case 153: break; + case 154: break; case 30: { return K_IN; } // fall through - case 154: break; + case 155: break; case 31: { return K_IS; } // fall through - case 155: break; + case 156: break; case 32: { return K_OR; } // fall through - case 156: break; + case 157: break; case 33: { return K_ON; } // fall through - case 157: break; + case 158: break; case 34: { return K_OF; } // fall through - case 158: break; + case 159: break; case 35: { return K_BY; } // fall through - case 159: break; + case 160: break; case 36: { return OP_RANGE; } // fall through - case 160: break; + case 161: break; case 37: { return L_STRING; } // fall through - case 161: break; + case 162: break; case 38: { return LINE_COMMENT; } // fall through - case 162: break; + case 163: break; case 39: { return BLOCK_COMMENT; } // fall through - case 163: break; + case 164: break; case 40: { return OP_REGEXMATCH; } // fall through - case 164: break; + case 165: break; case 41: { return OP_LESSTHANEQUALS; } // fall through - case 165: break; + case 166: break; case 42: { return OP_INVALIDNOTEQUALS; } // fall through - case 166: break; + case 167: break; case 43: { return OP_GREATERTHANEQUALS; } // fall through - case 167: break; + case 168: break; case 44: { return OP_PLUSEQUALS; } // fall through - case 168: break; + case 169: break; case 45: { return OP_NOTEQUALS; } // fall through - case 169: break; + case 170: break; case 46: { return K_AND; } // fall through - case 170: break; + case 171: break; case 47: { return K_ANY; } // fall through - case 171: break; + case 172: break; case 48: { return K_ADD; } // fall through - case 172: break; + case 173: break; case 49: { return K_ASC; } // fall through - case 173: break; + case 174: break; case 50: { return K_ALL; } // fall through - case 174: break; + case 175: break; case 51: { return K_CSV; } // fall through - case 175: break; + case 176: break; case 52: { return K_REL; } // fall through - case 176: break; + case 177: break; case 53: { return K_END; } // fall through - case 177: break; + case 178: break; case 54: { return K_NOT; } // fall through - case 178: break; + case 179: break; case 55: { return K_SET; } // fall through - case 179: break; + case 180: break; case 56: { return K_FOR; } // fall through - case 180: break; + case 181: break; case 57: { return K_XOR; } // fall through - case 181: break; + case 182: break; case 58: - { return L_IDENTIFIER_TEXT; + { return K_KEY; } // fall through - case 182: break; + case 183: break; case 59: - { return L_DECIMAL; + { return L_IDENTIFIER_TEXT; } // fall through - case 183: break; + case 184: break; case 60: - { return K_THEN; + { return L_DECIMAL; } // fall through - case 184: break; + case 185: break; case 61: - { return K_TRUE; + { return K_THEN; } // fall through - case 185: break; + case 186: break; case 62: - { return K_CASE; + { return K_TRUE; } // fall through - case 186: break; + case 187: break; case 63: - { return K_CALL; + { return K_CASE; } // fall through - case 187: break; + case 188: break; case 64: - { return K_ENDS; + { return K_CALL; } // fall through - case 188: break; + case 189: break; case 65: - { return K_ELSE; + { return K_ENDS; } // fall through - case 189: break; + case 190: break; case 66: - { return K_NULL; + { return K_ELSE; } // fall through - case 190: break; + case 191: break; case 67: - { return K_NONE; + { return K_NULL; } // fall through - case 191: break; + case 192: break; case 68: - { return K_NODE; + { return K_NONE; } // fall through - case 192: break; + case 193: break; case 69: - { return K_DROP; + { return K_NODE; } // fall through - case 193: break; + case 194: break; case 70: - { return K_DESC; + { return K_DROP; } // fall through - case 194: break; + case 195: break; case 71: - { return K_SCAN; + { return K_DESC; } // fall through - case 195: break; + case 196: break; case 72: - { return K_SKIP; + { return K_SCAN; } // fall through - case 196: break; + case 197: break; case 73: - { return K_LOAD; + { return K_SKIP; } // fall through - case 197: break; + case 198: break; case 74: - { return K_WHEN; + { return K_LOAD; } // fall through - case 198: break; + case 199: break; case 75: - { return K_WITH; + { return K_WHEN; } // fall through - case 199: break; + case 200: break; case 76: - { return K_FROM; + { return K_WITH; } // fall through - case 200: break; + case 201: break; case 77: - { return K_JOIN; + { return K_FROM; } // fall through - case 201: break; + case 202: break; case 78: - { return K_MATCH; + { return K_JOIN; } // fall through - case 202: break; + case 203: break; case 79: - { return K_MERGE; + { return K_MATCH; } // fall through - case 203: break; + case 204: break; case 80: - { return K_COUNT; + { return K_MERGE; } // fall through - case 204: break; + case 205: break; case 81: - { return K_UNION; + { return K_COUNT; } // fall through - case 205: break; + case 206: break; case 82: - { return K_USING; + { return K_UNION; } // fall through - case 206: break; + case 207: break; case 83: - { return K_INDEX; + { return K_USING; } // fall through - case 207: break; + case 208: break; case 84: - { return K_START; + { return K_INDEX; } // fall through - case 208: break; + case 209: break; case 85: - { return K_ORDER; + { return K_START; } // fall through - case 209: break; + case 210: break; case 86: - { return K_LIMIT; + { return K_ORDER; } // fall through - case 210: break; + case 211: break; case 87: - { return K_WHERE; + { return K_LIMIT; } // fall through - case 211: break; + case 212: break; case 88: - { return K_FALSE; + { return K_WHERE; } // fall through - case 212: break; + case 213: break; case 89: - { return K_BEGIN; + { return K_FALSE; } // fall through - case 213: break; + case 214: break; case 90: - { return K_YIELD; + { return K_BEGIN; } // fall through - case 214: break; + case 215: break; case 91: - { return K_ASSERT; + { return K_YIELD; } // fall through - case 215: break; + case 216: break; case 92: - { return K_CREATE; + { return K_ASSERT; } // fall through - case 216: break; + case 217: break; case 93: - { return K_COMMIT; + { return K_CREATE; } // fall through - case 217: break; + case 218: break; case 94: - { return K_CYPHER; + { return K_COMMIT; } // fall through - case 218: break; + case 219: break; case 95: - { return K_REMOVE; + { return K_CYPHER; } // fall through - case 219: break; + case 220: break; case 96: - { return K_RETURN; + { return K_REMOVE; } // fall through - case 220: break; + case 221: break; case 97: - { return K_REDUCE; + { return K_RETURN; } // fall through - case 221: break; + case 222: break; case 98: - { return K_EXISTS; + { return K_REDUCE; } // fall through - case 222: break; + case 223: break; case 99: - { return K_UNIQUE; + { return K_EXISTS; } // fall through - case 223: break; + case 224: break; case 100: - { return K_UNWIND; + { return K_UNIQUE; } // fall through - case 224: break; + case 225: break; case 101: - { return K_DETACH; + { return K_UNWIND; } // fall through - case 225: break; + case 226: break; case 102: - { return K_DELETE; + { return K_DETACH; } // fall through - case 226: break; + case 227: break; case 103: - { return K_STARTS; + { return K_DELETE; } // fall through - case 227: break; + case 228: break; case 104: - { return K_SCALAR; + { return K_STARTS; } // fall through - case 228: break; + case 229: break; case 105: - { return K_SINGLE; + { return K_SCALAR; } // fall through - case 229: break; + case 230: break; case 106: - { return K_FILTER; + { return K_SINGLE; } // fall through - case 230: break; + case 231: break; case 107: - { return K_HEADERS; + { return K_FILTER; } // fall through - case 231: break; + case 232: break; case 108: - { return K_REQUIRE; + { return K_HEADERS; } // fall through - case 232: break; + case 233: break; case 109: - { return K_EXTRACT; + { return K_REQUIRE; } // fall through - case 233: break; + case 234: break; case 110: - { return K_EXPLAIN; + { return K_EXTRACT; } // fall through - case 234: break; + case 235: break; case 111: - { return K_FOREACH; + { return K_EXPLAIN; } // fall through - case 235: break; + case 236: break; case 112: - { return K_PROFILE; + { return K_FOREACH; } // fall through - case 236: break; + case 237: break; case 113: - { return K_CONTAINS; + { return K_PROFILE; } // fall through - case 237: break; + case 238: break; case 114: - { return K_DISTINCT; + { return K_CONTAINS; } // fall through - case 238: break; + case 239: break; case 115: - { return K_OPTIONAL; + { return K_DISTINCT; } // fall through - case 239: break; + case 240: break; case 116: - { return K_PERIODIC; + { return K_OPTIONAL; } // fall through - case 240: break; + case 241: break; case 117: - { return K_MANDATORY; + { return K_PERIODIC; } // fall through - case 241: break; + case 242: break; case 118: - { return K_ASCENDING; + { return K_MANDATORY; } // fall through - case 242: break; + case 243: break; case 119: - { return K_CONSTRAINT; + { return K_ASCENDING; } // fall through - case 243: break; + case 244: break; case 120: - { return K_DESCENDING; + { return K_CONSTRAINT; } // fall through - case 244: break; + case 245: break; case 121: - { return K_RELATIONSHIP; + { return K_DESCENDING; } // fall through - case 245: break; + case 246: break; case 122: - { return K_SHORTESTPATH; + { return K_RELATIONSHIP; } // fall through - case 246: break; + case 247: break; case 123: - { return K_FIELDTERMINATOR; + { return K_SHORTESTPATH; } // fall through - case 247: break; + case 248: break; case 124: + { return K_FIELDTERMINATOR; + } + // fall through + case 249: break; + case 125: { return K_ALLSHORTESTPATHS; } // fall through - case 248: break; + case 250: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/testing/integration-neo4j/src/test/java/com/neueda/jetbrains/plugin/graphdb/test/integration/neo4j/tests/cypher/parsing/CommandParsingTest.java b/testing/integration-neo4j/src/test/java/com/neueda/jetbrains/plugin/graphdb/test/integration/neo4j/tests/cypher/parsing/CommandParsingTest.java index 1941a966..316e6909 100644 --- a/testing/integration-neo4j/src/test/java/com/neueda/jetbrains/plugin/graphdb/test/integration/neo4j/tests/cypher/parsing/CommandParsingTest.java +++ b/testing/integration-neo4j/src/test/java/com/neueda/jetbrains/plugin/graphdb/test/integration/neo4j/tests/cypher/parsing/CommandParsingTest.java @@ -8,6 +8,14 @@ public CommandParsingTest() { super("command"); } + public void testConstraintNodeKeyCreate() { + doTest(true); + } + + public void testConstraintNodeKeyDrop() { + doTest(true); + } + public void testConstraintPropertyExistsNodeCreate() { doTest(true); } diff --git a/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyCreate.cyp b/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyCreate.cyp new file mode 100644 index 00000000..661b8d1a --- /dev/null +++ b/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyCreate.cyp @@ -0,0 +1 @@ +CREATE CONSTRAINT ON (var:Label) ASSERT (var.property1, var.property2) IS NODE KEY; diff --git a/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyCreate.txt b/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyCreate.txt new file mode 100644 index 00000000..d18d644e --- /dev/null +++ b/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyCreate.txt @@ -0,0 +1,53 @@ +Cypher file: FILE(0,83) + CypherStatementItemImpl(STATEMENT_ITEM)(0,83) + CypherStatementImpl(STATEMENT)(0,82) + CypherQueryOptionsImpl(QUERY_OPTIONS)(0,0) + + CypherCommandImpl(COMMAND)(0,82) + CypherCreateNodeKeyConstraintImpl(CREATE_NODE_KEY_CONSTRAINT)(0,82) + PsiElement(CREATE)('CREATE')(0,6) + CypherNodeKeySyntaxImpl(NODE_KEY_SYNTAX)(7,82) + PsiElement(CONSTRAINT)('CONSTRAINT')(7,17) + PsiElement(ON)('ON')(18,20) + PsiElement(()('(')(21,22) + CypherVariableImpl(VARIABLE)(22,25) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(22,25) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(22,25) + PsiElement(identifier)('var')(22,25) + CypherNodeLabelImpl(NODE_LABEL)(25,31) + PsiElement(:)(':')(25,26) + CypherLabelNameImpl(LABEL_NAME)(26,31) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(26,31) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(26,31) + PsiElement(identifier)('Label')(26,31) + PsiElement())(')')(31,32) + PsiElement(ASSERT)('ASSERT')(33,39) + PsiElement(()('(')(40,41) + CypherPropertyExpressionImpl(PROPERTY_EXPRESSION)(41,54) + CypherVariableImpl(VARIABLE)(41,44) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(41,44) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(41,44) + PsiElement(identifier)('var')(41,44) + CypherPropertyLookupImpl(PROPERTY_LOOKUP)(44,54) + PsiElement(.)('.')(44,45) + CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(45,54) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(45,54) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(45,54) + PsiElement(identifier)('property1')(45,54) + PsiElement(,)(',')(54,55) + CypherPropertyExpressionImpl(PROPERTY_EXPRESSION)(56,69) + CypherVariableImpl(VARIABLE)(56,59) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(56,59) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(56,59) + PsiElement(identifier)('var')(56,59) + CypherPropertyLookupImpl(PROPERTY_LOOKUP)(59,69) + PsiElement(.)('.')(59,60) + CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(60,69) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(60,69) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(60,69) + PsiElement(identifier)('property2')(60,69) + PsiElement())(')')(69,70) + PsiElement(IS)('IS')(71,73) + PsiElement(NODE)('NODE')(74,78) + PsiElement(KEY)('KEY')(79,82) + PsiElement(;)(';')(82,83) \ No newline at end of file diff --git a/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyDrop.cyp b/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyDrop.cyp new file mode 100644 index 00000000..95d3905f --- /dev/null +++ b/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyDrop.cyp @@ -0,0 +1 @@ +DROP CONSTRAINT ON (var:Label) ASSERT (p.property, p.property) IS NODE KEY; diff --git a/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyDrop.txt b/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyDrop.txt new file mode 100644 index 00000000..3d13bdfa --- /dev/null +++ b/testing/integration-neo4j/src/test/resources/parsing/command/ConstraintNodeKeyDrop.txt @@ -0,0 +1,53 @@ +Cypher file: FILE(0,75) + CypherStatementItemImpl(STATEMENT_ITEM)(0,75) + CypherStatementImpl(STATEMENT)(0,74) + CypherQueryOptionsImpl(QUERY_OPTIONS)(0,0) + + CypherCommandImpl(COMMAND)(0,74) + CypherDropNodeKeyConstraintImpl(DROP_NODE_KEY_CONSTRAINT)(0,74) + PsiElement(DROP)('DROP')(0,4) + CypherNodeKeySyntaxImpl(NODE_KEY_SYNTAX)(5,74) + PsiElement(CONSTRAINT)('CONSTRAINT')(5,15) + PsiElement(ON)('ON')(16,18) + PsiElement(()('(')(19,20) + CypherVariableImpl(VARIABLE)(20,23) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(20,23) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(20,23) + PsiElement(identifier)('var')(20,23) + CypherNodeLabelImpl(NODE_LABEL)(23,29) + PsiElement(:)(':')(23,24) + CypherLabelNameImpl(LABEL_NAME)(24,29) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(24,29) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(24,29) + PsiElement(identifier)('Label')(24,29) + PsiElement())(')')(29,30) + PsiElement(ASSERT)('ASSERT')(31,37) + PsiElement(()('(')(38,39) + CypherPropertyExpressionImpl(PROPERTY_EXPRESSION)(39,49) + CypherVariableImpl(VARIABLE)(39,40) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(39,40) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(39,40) + PsiElement(identifier)('p')(39,40) + CypherPropertyLookupImpl(PROPERTY_LOOKUP)(40,49) + PsiElement(.)('.')(40,41) + CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(41,49) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(41,49) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(41,49) + PsiElement(identifier)('property')(41,49) + PsiElement(,)(',')(49,50) + CypherPropertyExpressionImpl(PROPERTY_EXPRESSION)(51,61) + CypherVariableImpl(VARIABLE)(51,52) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(51,52) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(51,52) + PsiElement(identifier)('p')(51,52) + CypherPropertyLookupImpl(PROPERTY_LOOKUP)(52,61) + PsiElement(.)('.')(52,53) + CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(53,61) + CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(53,61) + CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(53,61) + PsiElement(identifier)('property')(53,61) + PsiElement())(')')(61,62) + PsiElement(IS)('IS')(63,65) + PsiElement(NODE)('NODE')(66,70) + PsiElement(KEY)('KEY')(71,74) + PsiElement(;)(';')(74,75) \ No newline at end of file diff --git a/testing/integration-neo4j/src/test/resources/parsing/expressions/Expressions.cyp b/testing/integration-neo4j/src/test/resources/parsing/expressions/Expressions.cyp index d4add66a..71994b88 100644 --- a/testing/integration-neo4j/src/test/resources/parsing/expressions/Expressions.cyp +++ b/testing/integration-neo4j/src/test/resources/parsing/expressions/Expressions.cyp @@ -40,8 +40,8 @@ AND CASE var WHEN expr THEN expr END AND CASE WHEN expr THEN expr END AND CASE WHEN expr THEN expr END AND var.prop.prop.prop -AND {key: "val"} -AND {key: "val", key: "val"} +AND {ref: "val"} +AND {ref: "val", ref: "val"} AND [var IN expr] AND [var in expr | expr ] AND [] diff --git a/testing/integration-neo4j/src/test/resources/parsing/expressions/Expressions.txt b/testing/integration-neo4j/src/test/resources/parsing/expressions/Expressions.txt index 226b59d6..e8a293c2 100644 --- a/testing/integration-neo4j/src/test/resources/parsing/expressions/Expressions.txt +++ b/testing/integration-neo4j/src/test/resources/parsing/expressions/Expressions.txt @@ -437,7 +437,7 @@ Cypher file: FILE(0,1027) CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(626,629) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(626,629) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(626,629) - PsiElement(identifier)('key')(626,629) + PsiElement(identifier)('ref')(626,629) PsiElement(:)(':')(629,630) CypherExpressionImpl(EXPRESSION)(631,636) CypherStringLiteralImpl(STRING_LITERAL)(631,636) @@ -449,7 +449,7 @@ Cypher file: FILE(0,1027) CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(643,646) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(643,646) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(643,646) - PsiElement(identifier)('key')(643,646) + PsiElement(identifier)('ref')(643,646) PsiElement(:)(':')(646,647) CypherExpressionImpl(EXPRESSION)(648,653) CypherStringLiteralImpl(STRING_LITERAL)(648,653) @@ -458,7 +458,7 @@ Cypher file: FILE(0,1027) CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(655,658) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(655,658) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(655,658) - PsiElement(identifier)('key')(655,658) + PsiElement(identifier)('ref')(655,658) PsiElement(:)(':')(658,659) CypherExpressionImpl(EXPRESSION)(660,665) CypherStringLiteralImpl(STRING_LITERAL)(660,665) diff --git a/testing/integration-neo4j/src/test/resources/parsing/patterns/Patterns.cyp b/testing/integration-neo4j/src/test/resources/parsing/patterns/Patterns.cyp index 45c531cb..9dd58af9 100644 --- a/testing/integration-neo4j/src/test/resources/parsing/patterns/Patterns.cyp +++ b/testing/integration-neo4j/src/test/resources/parsing/patterns/Patterns.cyp @@ -7,8 +7,8 @@ MATCH SHORTESTPATH((n)); MATCH ALLSHORTESTPATHS((n)); MATCH (n:Label) MATCH (n {param}) -MATCH (n {key: "value"}) -MATCH (n {key: "value", key: "value"}) +MATCH (n {ref: "value"}) +MATCH (n {ref: "value", ref: "value"}) MATCH (n)--(n); MATCH (n)<--(n); MATCH (n)-->(n); @@ -27,6 +27,6 @@ MATCH (n)-[var:Type*2..]-(n); MATCH (n)-[var:Type*..2]-(n); MATCH (n)-[var:Type*2..2]-(n); MATCH (n)-[var {param}]-(n); -MATCH (n)-[var {key: "value"}]-(n); -MATCH (n)-[var {key: "value", key: "value"}]-(n); +MATCH (n)-[var {ref: "value"}]-(n); +MATCH (n)-[var {ref: "value", ref: "value"}]-(n); MATCH (n) - [:Type] -> (m) diff --git a/testing/integration-neo4j/src/test/resources/parsing/patterns/Patterns.txt b/testing/integration-neo4j/src/test/resources/parsing/patterns/Patterns.txt index 28ce824c..92b83005 100644 --- a/testing/integration-neo4j/src/test/resources/parsing/patterns/Patterns.txt +++ b/testing/integration-neo4j/src/test/resources/parsing/patterns/Patterns.txt @@ -278,7 +278,7 @@ Cypher file: FILE(0,778) CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(165,168) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(165,168) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(165,168) - PsiElement(identifier)('key')(165,168) + PsiElement(identifier)('ref')(165,168) PsiElement(:)(':')(168,169) CypherExpressionImpl(EXPRESSION)(170,177) CypherStringLiteralImpl(STRING_LITERAL)(170,177) @@ -304,7 +304,7 @@ Cypher file: FILE(0,778) CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(190,193) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(190,193) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(190,193) - PsiElement(identifier)('key')(190,193) + PsiElement(identifier)('ref')(190,193) PsiElement(:)(':')(193,194) CypherExpressionImpl(EXPRESSION)(195,202) CypherStringLiteralImpl(STRING_LITERAL)(195,202) @@ -313,7 +313,7 @@ Cypher file: FILE(0,778) CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(204,207) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(204,207) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(204,207) - PsiElement(identifier)('key')(204,207) + PsiElement(identifier)('ref')(204,207) PsiElement(:)(':')(207,208) CypherExpressionImpl(EXPRESSION)(209,216) CypherStringLiteralImpl(STRING_LITERAL)(209,216) @@ -1265,7 +1265,7 @@ Cypher file: FILE(0,778) CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(682,685) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(682,685) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(682,685) - PsiElement(identifier)('key')(682,685) + PsiElement(identifier)('ref')(682,685) PsiElement(:)(':')(685,686) CypherExpressionImpl(EXPRESSION)(687,694) CypherStringLiteralImpl(STRING_LITERAL)(687,694) @@ -1323,7 +1323,7 @@ Cypher file: FILE(0,778) CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(718,721) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(718,721) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(718,721) - PsiElement(identifier)('key')(718,721) + PsiElement(identifier)('ref')(718,721) PsiElement(:)(':')(721,722) CypherExpressionImpl(EXPRESSION)(723,730) CypherStringLiteralImpl(STRING_LITERAL)(723,730) @@ -1332,7 +1332,7 @@ Cypher file: FILE(0,778) CypherPropertyKeyNameImpl(PROPERTY_KEY_NAME)(732,735) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(732,735) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(732,735) - PsiElement(identifier)('key')(732,735) + PsiElement(identifier)('ref')(732,735) PsiElement(:)(':')(735,736) CypherExpressionImpl(EXPRESSION)(737,744) CypherStringLiteralImpl(STRING_LITERAL)(737,744) diff --git a/testing/integration-neo4j/src/test/resources/parsing/statement-options/StatementOptions.cyp b/testing/integration-neo4j/src/test/resources/parsing/statement-options/StatementOptions.cyp index 20d1cf37..9d2fca50 100644 --- a/testing/integration-neo4j/src/test/resources/parsing/statement-options/StatementOptions.cyp +++ b/testing/integration-neo4j/src/test/resources/parsing/statement-options/StatementOptions.cyp @@ -1,9 +1,9 @@ CYPHER RETURN n; CYPHER 2.3 RETURN n; -CYPHER key=val RETURN n; -CYPHER key1=val1 key2=val2 RETURN n; -CYPHER 2.3 key=val RETURN n; -CYPHER 2.3 key1=val2 key2=val2 RETURN n; +CYPHER ref=val RETURN n; +CYPHER ref1=val1 ref2=val2 RETURN n; +CYPHER 2.3 ref=val RETURN n; +CYPHER 2.3 ref1=val2 ref2=val2 RETURN n; EXPLAIN RETURN n; PROFILE RETURN n; -CYPHER 2.3 key1=val2 key2=val2 EXPLAIN PROFILE RETURN n; +CYPHER 2.3 ref1=val2 ref2=val2 EXPLAIN PROFILE RETURN n; diff --git a/testing/integration-neo4j/src/test/resources/parsing/statement-options/StatementOptions.txt b/testing/integration-neo4j/src/test/resources/parsing/statement-options/StatementOptions.txt index 523ad7d3..53aea911 100644 --- a/testing/integration-neo4j/src/test/resources/parsing/statement-options/StatementOptions.txt +++ b/testing/integration-neo4j/src/test/resources/parsing/statement-options/StatementOptions.txt @@ -56,7 +56,7 @@ Cypher file: FILE(0,262) CypherConfigurationOptionImpl(CONFIGURATION_OPTION)(45,52) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(45,48) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(45,48) - PsiElement(identifier)('key')(45,48) + PsiElement(identifier)('ref')(45,48) PsiElement(=)('=')(48,49) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(49,52) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(49,52) @@ -86,7 +86,7 @@ Cypher file: FILE(0,262) CypherConfigurationOptionImpl(CONFIGURATION_OPTION)(70,79) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(70,74) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(70,74) - PsiElement(identifier)('key1')(70,74) + PsiElement(identifier)('ref1')(70,74) PsiElement(=)('=')(74,75) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(75,79) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(75,79) @@ -94,7 +94,7 @@ Cypher file: FILE(0,262) CypherConfigurationOptionImpl(CONFIGURATION_OPTION)(80,89) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(80,84) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(80,84) - PsiElement(identifier)('key2')(80,84) + PsiElement(identifier)('ref2')(80,84) PsiElement(=)('=')(84,85) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(85,89) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(85,89) @@ -128,7 +128,7 @@ Cypher file: FILE(0,262) CypherConfigurationOptionImpl(CONFIGURATION_OPTION)(111,118) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(111,114) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(111,114) - PsiElement(identifier)('key')(111,114) + PsiElement(identifier)('ref')(111,114) PsiElement(=)('=')(114,115) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(115,118) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(115,118) @@ -162,7 +162,7 @@ Cypher file: FILE(0,262) CypherConfigurationOptionImpl(CONFIGURATION_OPTION)(140,149) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(140,144) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(140,144) - PsiElement(identifier)('key1')(140,144) + PsiElement(identifier)('ref1')(140,144) PsiElement(=)('=')(144,145) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(145,149) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(145,149) @@ -170,7 +170,7 @@ Cypher file: FILE(0,262) CypherConfigurationOptionImpl(CONFIGURATION_OPTION)(150,159) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(150,154) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(150,154) - PsiElement(identifier)('key2')(150,154) + PsiElement(identifier)('ref2')(150,154) PsiElement(=)('=')(154,155) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(155,159) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(155,159) @@ -248,7 +248,7 @@ Cypher file: FILE(0,262) CypherConfigurationOptionImpl(CONFIGURATION_OPTION)(217,226) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(217,221) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(217,221) - PsiElement(identifier)('key1')(217,221) + PsiElement(identifier)('ref1')(217,221) PsiElement(=)('=')(221,222) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(222,226) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(222,226) @@ -256,7 +256,7 @@ Cypher file: FILE(0,262) CypherConfigurationOptionImpl(CONFIGURATION_OPTION)(227,236) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(227,231) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(227,231) - PsiElement(identifier)('key2')(227,231) + PsiElement(identifier)('ref2')(227,231) PsiElement(=)('=')(231,232) CypherSymbolicNameStringImpl(SYMBOLIC_NAME_STRING)(232,236) CypherUnescapedSymbolicNameStringImpl(UNESCAPED_SYMBOLIC_NAME_STRING)(232,236)