Module: ShEx::Meta

Included in:
Parser
Defined in:
lib/shex/meta.rb

Overview

This file is automatically generated by /Users/gregg/.rvm/gems/ruby-2.3.1/bundler/gems/ebnf-7d5f4b7c477c/lib/ebnf/base.rb BRANCH derived from etc/shex.ebnf

Constant Summary collapse

START =
:shexDoc
BRANCH =
{
  :annotation => {
    "//" => ["//", :predicate, :_annotation_1],
  },
  :_annotation_1 => {
    :DECIMAL => [:literal],
    :DOUBLE => [:literal],
    :INTEGER => [:literal],
    :IRIREF => [:iri],
    :PNAME_LN => [:iri],
    :PNAME_NS => [:iri],
    :STRING_LITERAL1 => [:literal],
    :STRING_LITERAL2 => [:literal],
    :STRING_LITERAL_LONG1 => [:literal],
    :STRING_LITERAL_LONG2 => [:literal],
    "false" => [:literal],
    "true" => [:literal],
  },
  :baseDecl => {
    "BASE" => ["BASE", :IRIREF],
  },
  :blankNode => {
    :BLANK_NODE_LABEL => [:BLANK_NODE_LABEL],
  },
  :booleanLiteral => {
    "false" => ["false"],
    "true" => ["true"],
  },
  :bracketedTripleExpr => {
    "(" => ["(", :oneOfTripleExpr, ")", :_bracketedTripleExpr_1, :_bracketedTripleExpr_2, :semanticActions],
  },
  :_bracketedTripleExpr_1 => {
    "%" => [],
    ")" => [],
    "*" => [:cardinality],
    "+" => [:cardinality],
    "//" => [],
    ";" => [],
    "?" => [:cardinality],
    :REPEAT_RANGE => [:cardinality],
    "|" => [],
    "}" => [],
  },
  :_bracketedTripleExpr_2 => {
    "%" => [],
    ")" => [],
    "//" => [:_bracketedTripleExpr_3],
    ";" => [],
    "|" => [],
    "}" => [],
  },
  :_bracketedTripleExpr_3 => {
    "//" => [:annotation, :_bracketedTripleExpr_2],
  },
  :cardinality => {
    "*" => ["*"],
    "+" => ["+"],
    "?" => ["?"],
    :REPEAT_RANGE => [:REPEAT_RANGE],
  },
  :codeDecl => {
    "%" => ["%", :iri, :_codeDecl_1],
  },
  :_codeDecl_1 => {
    "%" => ["%"],
    :CODE => [:CODE],
  },
  :datatype => {
    :IRIREF => [:iri],
    :PNAME_LN => [:iri],
    :PNAME_NS => [:iri],
  },
  :directive => {
    "BASE" => [:baseDecl],
    "PREFIX" => [:prefixDecl],
  },
  :exclusion => {
    "-" => ["-", :iri, :_exclusion_1],
  },
  :_exclusion_1 => {
    "-" => [],
    "." => [],
    :DECIMAL => [],
    :DOUBLE => [],
    :INTEGER => [],
    :IRIREF => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    :STRING_LITERAL1 => [],
    :STRING_LITERAL2 => [],
    :STRING_LITERAL_LONG1 => [],
    :STRING_LITERAL_LONG2 => [],
    "]" => [],
    "false" => [],
    "true" => [],
    "~" => ["~"],
  },
  :extraPropertySet => {
    "EXTRA" => ["EXTRA", :_extraPropertySet_1],
  },
  :_extraPropertySet_1 => {
    :IRIREF => [:predicate, :_extraPropertySet_2],
    :PNAME_LN => [:predicate, :_extraPropertySet_2],
    :PNAME_NS => [:predicate, :_extraPropertySet_2],
    :RDF_TYPE => [:predicate, :_extraPropertySet_2],
  },
  :_extraPropertySet_2 => {
    "CLOSED" => [],
    "EXTRA" => [],
    :IRIREF => [:_extraPropertySet_3],
    :PNAME_LN => [:_extraPropertySet_3],
    :PNAME_NS => [:_extraPropertySet_3],
    :RDF_TYPE => [:_extraPropertySet_3],
    "{" => [],
  },
  :_extraPropertySet_3 => {
    :IRIREF => [:predicate, :_extraPropertySet_2],
    :PNAME_LN => [:predicate, :_extraPropertySet_2],
    :PNAME_NS => [:predicate, :_extraPropertySet_2],
    :RDF_TYPE => [:predicate, :_extraPropertySet_2],
  },
  :groupTripleExpr => {
    "$" => [:unaryTripleExpr, :_groupTripleExpr_1],
    "&" => [:unaryTripleExpr, :_groupTripleExpr_1],
    "(" => [:unaryTripleExpr, :_groupTripleExpr_1],
    :IRIREF => [:unaryTripleExpr, :_groupTripleExpr_1],
    :PNAME_LN => [:unaryTripleExpr, :_groupTripleExpr_1],
    :PNAME_NS => [:unaryTripleExpr, :_groupTripleExpr_1],
    :RDF_TYPE => [:unaryTripleExpr, :_groupTripleExpr_1],
    "^" => [:unaryTripleExpr, :_groupTripleExpr_1],
  },
  :_groupTripleExpr_1 => {
    ")" => [],
    ";" => [:_groupTripleExpr_3],
    "|" => [],
    "}" => [],
  },
  :_groupTripleExpr_2 => {
    ";" => [";", :_groupTripleExpr_4],
  },
  :_groupTripleExpr_3 => {
    ";" => [:_groupTripleExpr_2, :_groupTripleExpr_1],
  },
  :_groupTripleExpr_4 => {
    "$" => [:unaryTripleExpr],
    "&" => [:unaryTripleExpr],
    "(" => [:unaryTripleExpr],
    ")" => [],
    ";" => [],
    :IRIREF => [:unaryTripleExpr],
    :PNAME_LN => [:unaryTripleExpr],
    :PNAME_NS => [:unaryTripleExpr],
    :RDF_TYPE => [:unaryTripleExpr],
    "^" => [:unaryTripleExpr],
    "|" => [],
    "}" => [],
  },
  :include => {
    "&" => ["&", :shapeLabel],
  },
  :inlineShapeAnd => {
    "(" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "." => [:inlineShapeNot, :_inlineShapeAnd_1],
    "@" => [:inlineShapeNot, :_inlineShapeAnd_1],
    :ATPNAME_LN => [:inlineShapeNot, :_inlineShapeAnd_1],
    :ATPNAME_NS => [:inlineShapeNot, :_inlineShapeAnd_1],
    "BNODE" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "CLOSED" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "EXTRA" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "FRACTIONDIGITS" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "IRI" => [:inlineShapeNot, :_inlineShapeAnd_1],
    :IRIREF => [:inlineShapeNot, :_inlineShapeAnd_1],
    "LENGTH" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "LITERAL" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "MAXEXCLUSIVE" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "MAXINCLUSIVE" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "MAXLENGTH" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "MINEXCLUSIVE" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "MININCLUSIVE" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "MINLENGTH" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "NONLITERAL" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "NOT" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "PATTERN" => [:inlineShapeNot, :_inlineShapeAnd_1],
    :PNAME_LN => [:inlineShapeNot, :_inlineShapeAnd_1],
    :PNAME_NS => [:inlineShapeNot, :_inlineShapeAnd_1],
    "TOTALDIGITS" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "[" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "{" => [:inlineShapeNot, :_inlineShapeAnd_1],
    "~" => [:inlineShapeNot, :_inlineShapeAnd_1],
  },
  :_inlineShapeAnd_1 => {
    "%" => [],
    ")" => [],
    "*" => [],
    "+" => [],
    "//" => [],
    ";" => [],
    "?" => [],
    "AND" => [:_inlineShapeAnd_3],
    "OR" => [],
    :REPEAT_RANGE => [],
    "|" => [],
    "}" => [],
  },
  :_inlineShapeAnd_2 => {
    "AND" => ["AND", :inlineShapeNot],
  },
  :_inlineShapeAnd_3 => {
    "AND" => [:_inlineShapeAnd_2, :_inlineShapeAnd_1],
  },
  :inlineShapeAtom => {
    "(" => [:_inlineShapeAtom_3],
    "." => ["."],
    "@" => [:_inlineShapeAtom_2],
    :ATPNAME_LN => [:_inlineShapeAtom_2],
    :ATPNAME_NS => [:_inlineShapeAtom_2],
    "BNODE" => [:_inlineShapeAtom_1],
    "CLOSED" => [:_inlineShapeAtom_2],
    "EXTRA" => [:_inlineShapeAtom_2],
    "FRACTIONDIGITS" => [:_inlineShapeAtom_1],
    "IRI" => [:_inlineShapeAtom_1],
    :IRIREF => [:_inlineShapeAtom_1],
    "LENGTH" => [:_inlineShapeAtom_1],
    "LITERAL" => [:_inlineShapeAtom_1],
    "MAXEXCLUSIVE" => [:_inlineShapeAtom_1],
    "MAXINCLUSIVE" => [:_inlineShapeAtom_1],
    "MAXLENGTH" => [:_inlineShapeAtom_1],
    "MINEXCLUSIVE" => [:_inlineShapeAtom_1],
    "MININCLUSIVE" => [:_inlineShapeAtom_1],
    "MINLENGTH" => [:_inlineShapeAtom_1],
    "NONLITERAL" => [:_inlineShapeAtom_1],
    "PATTERN" => [:_inlineShapeAtom_1],
    :PNAME_LN => [:_inlineShapeAtom_1],
    :PNAME_NS => [:_inlineShapeAtom_1],
    "TOTALDIGITS" => [:_inlineShapeAtom_1],
    "[" => [:_inlineShapeAtom_1],
    "{" => [:_inlineShapeAtom_2],
    "~" => [:_inlineShapeAtom_1],
  },
  :_inlineShapeAtom_1 => {
    "BNODE" => [:nodeConstraint, :_inlineShapeAtom_4],
    "FRACTIONDIGITS" => [:nodeConstraint, :_inlineShapeAtom_4],
    "IRI" => [:nodeConstraint, :_inlineShapeAtom_4],
    :IRIREF => [:nodeConstraint, :_inlineShapeAtom_4],
    "LENGTH" => [:nodeConstraint, :_inlineShapeAtom_4],
    "LITERAL" => [:nodeConstraint, :_inlineShapeAtom_4],
    "MAXEXCLUSIVE" => [:nodeConstraint, :_inlineShapeAtom_4],
    "MAXINCLUSIVE" => [:nodeConstraint, :_inlineShapeAtom_4],
    "MAXLENGTH" => [:nodeConstraint, :_inlineShapeAtom_4],
    "MINEXCLUSIVE" => [:nodeConstraint, :_inlineShapeAtom_4],
    "MININCLUSIVE" => [:nodeConstraint, :_inlineShapeAtom_4],
    "MINLENGTH" => [:nodeConstraint, :_inlineShapeAtom_4],
    "NONLITERAL" => [:nodeConstraint, :_inlineShapeAtom_4],
    "PATTERN" => [:nodeConstraint, :_inlineShapeAtom_4],
    :PNAME_LN => [:nodeConstraint, :_inlineShapeAtom_4],
    :PNAME_NS => [:nodeConstraint, :_inlineShapeAtom_4],
    "TOTALDIGITS" => [:nodeConstraint, :_inlineShapeAtom_4],
    "[" => [:nodeConstraint, :_inlineShapeAtom_4],
    "~" => [:nodeConstraint, :_inlineShapeAtom_4],
  },
  :_inlineShapeAtom_2 => {
    "@" => [:inlineShapeOrRef, :_inlineShapeAtom_5],
    :ATPNAME_LN => [:inlineShapeOrRef, :_inlineShapeAtom_5],
    :ATPNAME_NS => [:inlineShapeOrRef, :_inlineShapeAtom_5],
    "CLOSED" => [:inlineShapeOrRef, :_inlineShapeAtom_5],
    "EXTRA" => [:inlineShapeOrRef, :_inlineShapeAtom_5],
    "{" => [:inlineShapeOrRef, :_inlineShapeAtom_5],
  },
  :_inlineShapeAtom_3 => {
    "(" => ["(", :shapeExpression, ")"],
  },
  :_inlineShapeAtom_4 => {
    "%" => [],
    ")" => [],
    "*" => [],
    "+" => [],
    "//" => [],
    ";" => [],
    "?" => [],
    "@" => [:inlineShapeOrRef],
    "AND" => [],
    :ATPNAME_LN => [:inlineShapeOrRef],
    :ATPNAME_NS => [:inlineShapeOrRef],
    "CLOSED" => [:inlineShapeOrRef],
    "EXTRA" => [:inlineShapeOrRef],
    "OR" => [],
    :REPEAT_RANGE => [],
    "{" => [:inlineShapeOrRef],
    "|" => [],
    "}" => [],
  },
  :_inlineShapeAtom_5 => {
    "%" => [],
    ")" => [],
    "*" => [],
    "+" => [],
    "//" => [],
    ";" => [],
    "?" => [],
    "AND" => [],
    "BNODE" => [:nodeConstraint],
    "FRACTIONDIGITS" => [:nodeConstraint],
    "IRI" => [:nodeConstraint],
    :IRIREF => [:nodeConstraint],
    "LENGTH" => [:nodeConstraint],
    "LITERAL" => [:nodeConstraint],
    "MAXEXCLUSIVE" => [:nodeConstraint],
    "MAXINCLUSIVE" => [:nodeConstraint],
    "MAXLENGTH" => [:nodeConstraint],
    "MINEXCLUSIVE" => [:nodeConstraint],
    "MININCLUSIVE" => [:nodeConstraint],
    "MINLENGTH" => [:nodeConstraint],
    "NONLITERAL" => [:nodeConstraint],
    "OR" => [],
    "PATTERN" => [:nodeConstraint],
    :PNAME_LN => [:nodeConstraint],
    :PNAME_NS => [:nodeConstraint],
    :REPEAT_RANGE => [],
    "TOTALDIGITS" => [:nodeConstraint],
    "[" => [:nodeConstraint],
    "|" => [],
    "}" => [],
    "~" => [:nodeConstraint],
  },
  :inlineShapeDefinition => {
    "CLOSED" => [:_inlineShapeDefinition_1, "{", :_inlineShapeDefinition_2, "}"],
    "EXTRA" => [:_inlineShapeDefinition_1, "{", :_inlineShapeDefinition_2, "}"],
    "{" => [:_inlineShapeDefinition_1, "{", :_inlineShapeDefinition_2, "}"],
  },
  :_inlineShapeDefinition_1 => {
    "CLOSED" => [:_inlineShapeDefinition_4],
    "EXTRA" => [:_inlineShapeDefinition_4],
    "{" => [],
  },
  :_inlineShapeDefinition_2 => {
    "$" => [:tripleExpression],
    "&" => [:tripleExpression],
    "(" => [:tripleExpression],
    :IRIREF => [:tripleExpression],
    :PNAME_LN => [:tripleExpression],
    :PNAME_NS => [:tripleExpression],
    :RDF_TYPE => [:tripleExpression],
    "^" => [:tripleExpression],
    "}" => [],
  },
  :_inlineShapeDefinition_3 => {
    "CLOSED" => ["CLOSED"],
    "EXTRA" => [:extraPropertySet],
  },
  :_inlineShapeDefinition_4 => {
    "CLOSED" => [:_inlineShapeDefinition_3, :_inlineShapeDefinition_1],
    "EXTRA" => [:_inlineShapeDefinition_3, :_inlineShapeDefinition_1],
  },
  :inlineShapeExpression => {
    "(" => [:inlineShapeOr],
    "." => [:inlineShapeOr],
    "@" => [:inlineShapeOr],
    :ATPNAME_LN => [:inlineShapeOr],
    :ATPNAME_NS => [:inlineShapeOr],
    "BNODE" => [:inlineShapeOr],
    "CLOSED" => [:inlineShapeOr],
    "EXTRA" => [:inlineShapeOr],
    "FRACTIONDIGITS" => [:inlineShapeOr],
    "IRI" => [:inlineShapeOr],
    :IRIREF => [:inlineShapeOr],
    "LENGTH" => [:inlineShapeOr],
    "LITERAL" => [:inlineShapeOr],
    "MAXEXCLUSIVE" => [:inlineShapeOr],
    "MAXINCLUSIVE" => [:inlineShapeOr],
    "MAXLENGTH" => [:inlineShapeOr],
    "MINEXCLUSIVE" => [:inlineShapeOr],
    "MININCLUSIVE" => [:inlineShapeOr],
    "MINLENGTH" => [:inlineShapeOr],
    "NONLITERAL" => [:inlineShapeOr],
    "NOT" => [:inlineShapeOr],
    "PATTERN" => [:inlineShapeOr],
    :PNAME_LN => [:inlineShapeOr],
    :PNAME_NS => [:inlineShapeOr],
    "TOTALDIGITS" => [:inlineShapeOr],
    "[" => [:inlineShapeOr],
    "{" => [:inlineShapeOr],
    "~" => [:inlineShapeOr],
  },
  :inlineShapeNot => {
    "(" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "." => [:_inlineShapeNot_1, :inlineShapeAtom],
    "@" => [:_inlineShapeNot_1, :inlineShapeAtom],
    :ATPNAME_LN => [:_inlineShapeNot_1, :inlineShapeAtom],
    :ATPNAME_NS => [:_inlineShapeNot_1, :inlineShapeAtom],
    "BNODE" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "CLOSED" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "EXTRA" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "FRACTIONDIGITS" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "IRI" => [:_inlineShapeNot_1, :inlineShapeAtom],
    :IRIREF => [:_inlineShapeNot_1, :inlineShapeAtom],
    "LENGTH" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "LITERAL" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "MAXEXCLUSIVE" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "MAXINCLUSIVE" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "MAXLENGTH" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "MINEXCLUSIVE" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "MININCLUSIVE" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "MINLENGTH" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "NONLITERAL" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "NOT" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "PATTERN" => [:_inlineShapeNot_1, :inlineShapeAtom],
    :PNAME_LN => [:_inlineShapeNot_1, :inlineShapeAtom],
    :PNAME_NS => [:_inlineShapeNot_1, :inlineShapeAtom],
    "TOTALDIGITS" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "[" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "{" => [:_inlineShapeNot_1, :inlineShapeAtom],
    "~" => [:_inlineShapeNot_1, :inlineShapeAtom],
  },
  :_inlineShapeNot_1 => {
    "(" => [],
    "." => [],
    "@" => [],
    :ATPNAME_LN => [],
    :ATPNAME_NS => [],
    "BNODE" => [],
    "CLOSED" => [],
    "EXTRA" => [],
    "FRACTIONDIGITS" => [],
    "IRI" => [],
    :IRIREF => [],
    "LENGTH" => [],
    "LITERAL" => [],
    "MAXEXCLUSIVE" => [],
    "MAXINCLUSIVE" => [],
    "MAXLENGTH" => [],
    "MINEXCLUSIVE" => [],
    "MININCLUSIVE" => [],
    "MINLENGTH" => [],
    "NONLITERAL" => [],
    "NOT" => ["NOT"],
    "PATTERN" => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "TOTALDIGITS" => [],
    "[" => [],
    "{" => [],
    "~" => [],
  },
  :inlineShapeOr => {
    "(" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "." => [:inlineShapeAnd, :_inlineShapeOr_1],
    "@" => [:inlineShapeAnd, :_inlineShapeOr_1],
    :ATPNAME_LN => [:inlineShapeAnd, :_inlineShapeOr_1],
    :ATPNAME_NS => [:inlineShapeAnd, :_inlineShapeOr_1],
    "BNODE" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "CLOSED" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "EXTRA" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "FRACTIONDIGITS" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "IRI" => [:inlineShapeAnd, :_inlineShapeOr_1],
    :IRIREF => [:inlineShapeAnd, :_inlineShapeOr_1],
    "LENGTH" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "LITERAL" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "MAXEXCLUSIVE" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "MAXINCLUSIVE" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "MAXLENGTH" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "MINEXCLUSIVE" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "MININCLUSIVE" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "MINLENGTH" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "NONLITERAL" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "NOT" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "PATTERN" => [:inlineShapeAnd, :_inlineShapeOr_1],
    :PNAME_LN => [:inlineShapeAnd, :_inlineShapeOr_1],
    :PNAME_NS => [:inlineShapeAnd, :_inlineShapeOr_1],
    "TOTALDIGITS" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "[" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "{" => [:inlineShapeAnd, :_inlineShapeOr_1],
    "~" => [:inlineShapeAnd, :_inlineShapeOr_1],
  },
  :inlineShapeOrRef => {
    "@" => [:_inlineShapeOrRef_1],
    :ATPNAME_LN => [:ATPNAME_LN],
    :ATPNAME_NS => [:ATPNAME_NS],
    "CLOSED" => [:inlineShapeDefinition],
    "EXTRA" => [:inlineShapeDefinition],
    "{" => [:inlineShapeDefinition],
  },
  :_inlineShapeOrRef_1 => {
    "@" => ["@", :shapeLabel],
  },
  :_inlineShapeOr_1 => {
    "%" => [],
    ")" => [],
    "*" => [],
    "+" => [],
    "//" => [],
    ";" => [],
    "?" => [],
    "OR" => [:_inlineShapeOr_3],
    :REPEAT_RANGE => [],
    "|" => [],
    "}" => [],
  },
  :_inlineShapeOr_2 => {
    "OR" => ["OR", :inlineShapeAnd],
  },
  :_inlineShapeOr_3 => {
    "OR" => [:_inlineShapeOr_2, :_inlineShapeOr_1],
  },
  :iri => {
    :IRIREF => [:IRIREF],
    :PNAME_LN => [:prefixedName],
    :PNAME_NS => [:prefixedName],
  },
  :iriRange => {
    "." => [:_iriRange_2],
    :IRIREF => [:_iriRange_1],
    :PNAME_LN => [:_iriRange_1],
    :PNAME_NS => [:_iriRange_1],
  },
  :_iriRange_1 => {
    :IRIREF => [:iri, :_iriRange_3],
    :PNAME_LN => [:iri, :_iriRange_3],
    :PNAME_NS => [:iri, :_iriRange_3],
  },
  :_iriRange_2 => {
    "." => [".", :_iriRange_7],
  },
  :_iriRange_3 => {
    "." => [],
    :DECIMAL => [],
    :DOUBLE => [],
    :INTEGER => [],
    :IRIREF => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    :STRING_LITERAL1 => [],
    :STRING_LITERAL2 => [],
    :STRING_LITERAL_LONG1 => [],
    :STRING_LITERAL_LONG2 => [],
    "]" => [],
    "false" => [],
    "true" => [],
    "~" => [:_iriRange_4],
  },
  :_iriRange_4 => {
    "~" => ["~", :_iriRange_5],
  },
  :_iriRange_5 => {
    "-" => [:_iriRange_6],
    "." => [],
    :DECIMAL => [],
    :DOUBLE => [],
    :INTEGER => [],
    :IRIREF => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    :STRING_LITERAL1 => [],
    :STRING_LITERAL2 => [],
    :STRING_LITERAL_LONG1 => [],
    :STRING_LITERAL_LONG2 => [],
    "]" => [],
    "false" => [],
    "true" => [],
  },
  :_iriRange_6 => {
    "-" => [:exclusion, :_iriRange_5],
  },
  :_iriRange_7 => {
    "-" => [:exclusion, :_iriRange_8],
  },
  :_iriRange_8 => {
    "-" => [:_iriRange_9],
    "." => [],
    :DECIMAL => [],
    :DOUBLE => [],
    :INTEGER => [],
    :IRIREF => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    :STRING_LITERAL1 => [],
    :STRING_LITERAL2 => [],
    :STRING_LITERAL_LONG1 => [],
    :STRING_LITERAL_LONG2 => [],
    "]" => [],
    "false" => [],
    "true" => [],
  },
  :_iriRange_9 => {
    "-" => [:exclusion, :_iriRange_8],
  },
  :literal => {
    :DECIMAL => [:numericLiteral],
    :DOUBLE => [:numericLiteral],
    :INTEGER => [:numericLiteral],
    :STRING_LITERAL1 => [:rdfLiteral],
    :STRING_LITERAL2 => [:rdfLiteral],
    :STRING_LITERAL_LONG1 => [:rdfLiteral],
    :STRING_LITERAL_LONG2 => [:rdfLiteral],
    "false" => [:booleanLiteral],
    "true" => [:booleanLiteral],
  },
  :nodeConstraint => {
    "BNODE" => [:_nodeConstraint_2],
    "FRACTIONDIGITS" => [:_nodeConstraint_5],
    "IRI" => [:_nodeConstraint_2],
    :IRIREF => [:_nodeConstraint_3],
    "LENGTH" => [:_nodeConstraint_5],
    "LITERAL" => [:_nodeConstraint_1],
    "MAXEXCLUSIVE" => [:_nodeConstraint_5],
    "MAXINCLUSIVE" => [:_nodeConstraint_5],
    "MAXLENGTH" => [:_nodeConstraint_5],
    "MINEXCLUSIVE" => [:_nodeConstraint_5],
    "MININCLUSIVE" => [:_nodeConstraint_5],
    "MINLENGTH" => [:_nodeConstraint_5],
    "NONLITERAL" => [:_nodeConstraint_2],
    "PATTERN" => [:_nodeConstraint_5],
    :PNAME_LN => [:_nodeConstraint_3],
    :PNAME_NS => [:_nodeConstraint_3],
    "TOTALDIGITS" => [:_nodeConstraint_5],
    "[" => [:_nodeConstraint_4],
    "~" => [:_nodeConstraint_5],
  },
  :_nodeConstraint_1 => {
    "LITERAL" => ["LITERAL", :_nodeConstraint_6],
  },
  :_nodeConstraint_10 => {
    "%" => [],
    ")" => [],
    "*" => [],
    "+" => [],
    "//" => [],
    ";" => [],
    "?" => [],
    "@" => [],
    "AND" => [],
    :ATPNAME_LN => [],
    :ATPNAME_NS => [],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    "CLOSED" => [],
    "EXTRA" => [],
    "FRACTIONDIGITS" => [:_nodeConstraint_11],
    :IRIREF => [],
    "LENGTH" => [:_nodeConstraint_11],
    "MAXEXCLUSIVE" => [:_nodeConstraint_11],
    "MAXINCLUSIVE" => [:_nodeConstraint_11],
    "MAXLENGTH" => [:_nodeConstraint_11],
    "MINEXCLUSIVE" => [:_nodeConstraint_11],
    "MININCLUSIVE" => [:_nodeConstraint_11],
    "MINLENGTH" => [:_nodeConstraint_11],
    "OR" => [],
    "PATTERN" => [:_nodeConstraint_11],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    :REPEAT_RANGE => [],
    "START" => [],
    "TOTALDIGITS" => [:_nodeConstraint_11],
    "{" => [],
    "|" => [],
    "}" => [],
    "~" => [:_nodeConstraint_11],
  },
  :_nodeConstraint_11 => {
    "FRACTIONDIGITS" => [:xsFacet, :_nodeConstraint_10],
    "LENGTH" => [:xsFacet, :_nodeConstraint_10],
    "MAXEXCLUSIVE" => [:xsFacet, :_nodeConstraint_10],
    "MAXINCLUSIVE" => [:xsFacet, :_nodeConstraint_10],
    "MAXLENGTH" => [:xsFacet, :_nodeConstraint_10],
    "MINEXCLUSIVE" => [:xsFacet, :_nodeConstraint_10],
    "MININCLUSIVE" => [:xsFacet, :_nodeConstraint_10],
    "MINLENGTH" => [:xsFacet, :_nodeConstraint_10],
    "PATTERN" => [:xsFacet, :_nodeConstraint_10],
    "TOTALDIGITS" => [:xsFacet, :_nodeConstraint_10],
    "~" => [:xsFacet, :_nodeConstraint_10],
  },
  :_nodeConstraint_12 => {
    "%" => [],
    ")" => [],
    "*" => [],
    "+" => [],
    "//" => [],
    ";" => [],
    "?" => [],
    "@" => [],
    "AND" => [],
    :ATPNAME_LN => [],
    :ATPNAME_NS => [],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    "CLOSED" => [],
    "EXTRA" => [],
    "FRACTIONDIGITS" => [:_nodeConstraint_13],
    :IRIREF => [],
    "LENGTH" => [:_nodeConstraint_13],
    "MAXEXCLUSIVE" => [:_nodeConstraint_13],
    "MAXINCLUSIVE" => [:_nodeConstraint_13],
    "MAXLENGTH" => [:_nodeConstraint_13],
    "MINEXCLUSIVE" => [:_nodeConstraint_13],
    "MININCLUSIVE" => [:_nodeConstraint_13],
    "MINLENGTH" => [:_nodeConstraint_13],
    "OR" => [],
    "PATTERN" => [:_nodeConstraint_13],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    :REPEAT_RANGE => [],
    "START" => [],
    "TOTALDIGITS" => [:_nodeConstraint_13],
    "{" => [],
    "|" => [],
    "}" => [],
    "~" => [:_nodeConstraint_13],
  },
  :_nodeConstraint_13 => {
    "FRACTIONDIGITS" => [:xsFacet, :_nodeConstraint_12],
    "LENGTH" => [:xsFacet, :_nodeConstraint_12],
    "MAXEXCLUSIVE" => [:xsFacet, :_nodeConstraint_12],
    "MAXINCLUSIVE" => [:xsFacet, :_nodeConstraint_12],
    "MAXLENGTH" => [:xsFacet, :_nodeConstraint_12],
    "MINEXCLUSIVE" => [:xsFacet, :_nodeConstraint_12],
    "MININCLUSIVE" => [:xsFacet, :_nodeConstraint_12],
    "MINLENGTH" => [:xsFacet, :_nodeConstraint_12],
    "PATTERN" => [:xsFacet, :_nodeConstraint_12],
    "TOTALDIGITS" => [:xsFacet, :_nodeConstraint_12],
    "~" => [:xsFacet, :_nodeConstraint_12],
  },
  :_nodeConstraint_14 => {
    "%" => [],
    ")" => [],
    "*" => [],
    "+" => [],
    "//" => [],
    ";" => [],
    "?" => [],
    "@" => [],
    "AND" => [],
    :ATPNAME_LN => [],
    :ATPNAME_NS => [],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    "CLOSED" => [],
    "EXTRA" => [],
    "FRACTIONDIGITS" => [:_nodeConstraint_15],
    :IRIREF => [],
    "LENGTH" => [:_nodeConstraint_15],
    "MAXEXCLUSIVE" => [:_nodeConstraint_15],
    "MAXINCLUSIVE" => [:_nodeConstraint_15],
    "MAXLENGTH" => [:_nodeConstraint_15],
    "MINEXCLUSIVE" => [:_nodeConstraint_15],
    "MININCLUSIVE" => [:_nodeConstraint_15],
    "MINLENGTH" => [:_nodeConstraint_15],
    "OR" => [],
    "PATTERN" => [:_nodeConstraint_15],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    :REPEAT_RANGE => [],
    "START" => [],
    "TOTALDIGITS" => [:_nodeConstraint_15],
    "{" => [],
    "|" => [],
    "}" => [],
    "~" => [:_nodeConstraint_15],
  },
  :_nodeConstraint_15 => {
    "FRACTIONDIGITS" => [:xsFacet, :_nodeConstraint_14],
    "LENGTH" => [:xsFacet, :_nodeConstraint_14],
    "MAXEXCLUSIVE" => [:xsFacet, :_nodeConstraint_14],
    "MAXINCLUSIVE" => [:xsFacet, :_nodeConstraint_14],
    "MAXLENGTH" => [:xsFacet, :_nodeConstraint_14],
    "MINEXCLUSIVE" => [:xsFacet, :_nodeConstraint_14],
    "MININCLUSIVE" => [:xsFacet, :_nodeConstraint_14],
    "MINLENGTH" => [:xsFacet, :_nodeConstraint_14],
    "PATTERN" => [:xsFacet, :_nodeConstraint_14],
    "TOTALDIGITS" => [:xsFacet, :_nodeConstraint_14],
    "~" => [:xsFacet, :_nodeConstraint_14],
  },
  :_nodeConstraint_2 => {
    "BNODE" => [:nonLiteralKind, :_nodeConstraint_8],
    "IRI" => [:nonLiteralKind, :_nodeConstraint_8],
    "NONLITERAL" => [:nonLiteralKind, :_nodeConstraint_8],
  },
  :_nodeConstraint_3 => {
    :IRIREF => [:datatype, :_nodeConstraint_10],
    :PNAME_LN => [:datatype, :_nodeConstraint_10],
    :PNAME_NS => [:datatype, :_nodeConstraint_10],
  },
  :_nodeConstraint_4 => {
    "[" => [:valueSet, :_nodeConstraint_12],
  },
  :_nodeConstraint_5 => {
    "FRACTIONDIGITS" => [:xsFacet, :_nodeConstraint_14],
    "LENGTH" => [:xsFacet, :_nodeConstraint_14],
    "MAXEXCLUSIVE" => [:xsFacet, :_nodeConstraint_14],
    "MAXINCLUSIVE" => [:xsFacet, :_nodeConstraint_14],
    "MAXLENGTH" => [:xsFacet, :_nodeConstraint_14],
    "MINEXCLUSIVE" => [:xsFacet, :_nodeConstraint_14],
    "MININCLUSIVE" => [:xsFacet, :_nodeConstraint_14],
    "MINLENGTH" => [:xsFacet, :_nodeConstraint_14],
    "PATTERN" => [:xsFacet, :_nodeConstraint_14],
    "TOTALDIGITS" => [:xsFacet, :_nodeConstraint_14],
    "~" => [:xsFacet, :_nodeConstraint_14],
  },
  :_nodeConstraint_6 => {
    "%" => [],
    ")" => [],
    "*" => [],
    "+" => [],
    "//" => [],
    ";" => [],
    "?" => [],
    "@" => [],
    "AND" => [],
    :ATPNAME_LN => [],
    :ATPNAME_NS => [],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    "CLOSED" => [],
    "EXTRA" => [],
    "FRACTIONDIGITS" => [:_nodeConstraint_7],
    :IRIREF => [],
    "LENGTH" => [:_nodeConstraint_7],
    "MAXEXCLUSIVE" => [:_nodeConstraint_7],
    "MAXINCLUSIVE" => [:_nodeConstraint_7],
    "MAXLENGTH" => [:_nodeConstraint_7],
    "MINEXCLUSIVE" => [:_nodeConstraint_7],
    "MININCLUSIVE" => [:_nodeConstraint_7],
    "MINLENGTH" => [:_nodeConstraint_7],
    "OR" => [],
    "PATTERN" => [:_nodeConstraint_7],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    :REPEAT_RANGE => [],
    "START" => [],
    "TOTALDIGITS" => [:_nodeConstraint_7],
    "{" => [],
    "|" => [],
    "}" => [],
    "~" => [:_nodeConstraint_7],
  },
  :_nodeConstraint_7 => {
    "FRACTIONDIGITS" => [:xsFacet, :_nodeConstraint_6],
    "LENGTH" => [:xsFacet, :_nodeConstraint_6],
    "MAXEXCLUSIVE" => [:xsFacet, :_nodeConstraint_6],
    "MAXINCLUSIVE" => [:xsFacet, :_nodeConstraint_6],
    "MAXLENGTH" => [:xsFacet, :_nodeConstraint_6],
    "MINEXCLUSIVE" => [:xsFacet, :_nodeConstraint_6],
    "MININCLUSIVE" => [:xsFacet, :_nodeConstraint_6],
    "MINLENGTH" => [:xsFacet, :_nodeConstraint_6],
    "PATTERN" => [:xsFacet, :_nodeConstraint_6],
    "TOTALDIGITS" => [:xsFacet, :_nodeConstraint_6],
    "~" => [:xsFacet, :_nodeConstraint_6],
  },
  :_nodeConstraint_8 => {
    "%" => [],
    ")" => [],
    "*" => [],
    "+" => [],
    "//" => [],
    ";" => [],
    "?" => [],
    "@" => [],
    "AND" => [],
    :ATPNAME_LN => [],
    :ATPNAME_NS => [],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    "CLOSED" => [],
    "EXTRA" => [],
    :IRIREF => [],
    "LENGTH" => [:_nodeConstraint_9],
    "MAXLENGTH" => [:_nodeConstraint_9],
    "MINLENGTH" => [:_nodeConstraint_9],
    "OR" => [],
    "PATTERN" => [:_nodeConstraint_9],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    :REPEAT_RANGE => [],
    "START" => [],
    "{" => [],
    "|" => [],
    "}" => [],
    "~" => [:_nodeConstraint_9],
  },
  :_nodeConstraint_9 => {
    "LENGTH" => [:stringFacet, :_nodeConstraint_8],
    "MAXLENGTH" => [:stringFacet, :_nodeConstraint_8],
    "MINLENGTH" => [:stringFacet, :_nodeConstraint_8],
    "PATTERN" => [:stringFacet, :_nodeConstraint_8],
    "~" => [:stringFacet, :_nodeConstraint_8],
  },
  :nonLiteralKind => {
    "BNODE" => ["BNODE"],
    "IRI" => ["IRI"],
    "NONLITERAL" => ["NONLITERAL"],
  },
  :notStartAction => {
    :BLANK_NODE_LABEL => [:shapeExprDecl],
    :IRIREF => [:shapeExprDecl],
    :PNAME_LN => [:shapeExprDecl],
    :PNAME_NS => [:shapeExprDecl],
    "START" => [:start],
  },
  :numericFacet => {
    "FRACTIONDIGITS" => [:_numericFacet_2],
    "MAXEXCLUSIVE" => [:_numericFacet_1],
    "MAXINCLUSIVE" => [:_numericFacet_1],
    "MINEXCLUSIVE" => [:_numericFacet_1],
    "MININCLUSIVE" => [:_numericFacet_1],
    "TOTALDIGITS" => [:_numericFacet_2],
  },
  :_numericFacet_1 => {
    "MAXEXCLUSIVE" => [:numericRange, :_numericFacet_3],
    "MAXINCLUSIVE" => [:numericRange, :_numericFacet_3],
    "MINEXCLUSIVE" => [:numericRange, :_numericFacet_3],
    "MININCLUSIVE" => [:numericRange, :_numericFacet_3],
  },
  :_numericFacet_2 => {
    "FRACTIONDIGITS" => [:numericLength, :INTEGER],
    "TOTALDIGITS" => [:numericLength, :INTEGER],
  },
  :_numericFacet_3 => {
    :DECIMAL => [:numericLiteral],
    :DOUBLE => [:numericLiteral],
    :INTEGER => [:numericLiteral],
    :STRING_LITERAL1 => [:_numericFacet_4],
    :STRING_LITERAL2 => [:_numericFacet_4],
    :STRING_LITERAL_LONG1 => [:_numericFacet_4],
    :STRING_LITERAL_LONG2 => [:_numericFacet_4],
  },
  :_numericFacet_4 => {
    :STRING_LITERAL1 => [:string, "^^", :datatype],
    :STRING_LITERAL2 => [:string, "^^", :datatype],
    :STRING_LITERAL_LONG1 => [:string, "^^", :datatype],
    :STRING_LITERAL_LONG2 => [:string, "^^", :datatype],
  },
  :numericLength => {
    "FRACTIONDIGITS" => ["FRACTIONDIGITS"],
    "TOTALDIGITS" => ["TOTALDIGITS"],
  },
  :numericLiteral => {
    :DECIMAL => [:DECIMAL],
    :DOUBLE => [:DOUBLE],
    :INTEGER => [:INTEGER],
  },
  :numericRange => {
    "MAXEXCLUSIVE" => ["MAXEXCLUSIVE"],
    "MAXINCLUSIVE" => ["MAXINCLUSIVE"],
    "MINEXCLUSIVE" => ["MINEXCLUSIVE"],
    "MININCLUSIVE" => ["MININCLUSIVE"],
  },
  :oneOfTripleExpr => {
    "$" => [:groupTripleExpr, :_oneOfTripleExpr_1],
    "&" => [:groupTripleExpr, :_oneOfTripleExpr_1],
    "(" => [:groupTripleExpr, :_oneOfTripleExpr_1],
    :IRIREF => [:groupTripleExpr, :_oneOfTripleExpr_1],
    :PNAME_LN => [:groupTripleExpr, :_oneOfTripleExpr_1],
    :PNAME_NS => [:groupTripleExpr, :_oneOfTripleExpr_1],
    :RDF_TYPE => [:groupTripleExpr, :_oneOfTripleExpr_1],
    "^" => [:groupTripleExpr, :_oneOfTripleExpr_1],
  },
  :_oneOfTripleExpr_1 => {
    ")" => [],
    "|" => [:_oneOfTripleExpr_3],
    "}" => [],
  },
  :_oneOfTripleExpr_2 => {
    "|" => ["|", :groupTripleExpr],
  },
  :_oneOfTripleExpr_3 => {
    "|" => [:_oneOfTripleExpr_2, :_oneOfTripleExpr_1],
  },
  :predicate => {
    :IRIREF => [:iri],
    :PNAME_LN => [:iri],
    :PNAME_NS => [:iri],
    :RDF_TYPE => [:RDF_TYPE],
  },
  :prefixDecl => {
    "PREFIX" => ["PREFIX", :PNAME_NS, :IRIREF],
  },
  :prefixedName => {
    :PNAME_LN => [:PNAME_LN],
    :PNAME_NS => [:PNAME_NS],
  },
  :productionLabel => {
    "$" => ["$", :_productionLabel_1],
  },
  :_productionLabel_1 => {
    :BLANK_NODE_LABEL => [:blankNode],
    :IRIREF => [:iri],
    :PNAME_LN => [:iri],
    :PNAME_NS => [:iri],
  },
  :rdfLiteral => {
    :STRING_LITERAL1 => [:string, :_rdfLiteral_1],
    :STRING_LITERAL2 => [:string, :_rdfLiteral_1],
    :STRING_LITERAL_LONG1 => [:string, :_rdfLiteral_1],
    :STRING_LITERAL_LONG2 => [:string, :_rdfLiteral_1],
  },
  :_rdfLiteral_1 => {
    "%" => [],
    ")" => [],
    "." => [],
    "//" => [],
    ";" => [],
    "AND" => [],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    :DECIMAL => [],
    :DOUBLE => [],
    :INTEGER => [],
    :IRIREF => [],
    :LANGTAG => [:_rdfLiteral_2],
    "OR" => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    "START" => [],
    :STRING_LITERAL1 => [],
    :STRING_LITERAL2 => [],
    :STRING_LITERAL_LONG1 => [],
    :STRING_LITERAL_LONG2 => [],
    "]" => [],
    "^^" => [:_rdfLiteral_2],
    "false" => [],
    "true" => [],
    "|" => [],
    "}" => [],
  },
  :_rdfLiteral_2 => {
    :LANGTAG => [:LANGTAG],
    "^^" => [:_rdfLiteral_3],
  },
  :_rdfLiteral_3 => {
    "^^" => ["^^", :datatype],
  },
  :semanticActions => {
    "%" => [:_semanticActions_1],
    ")" => [],
    ";" => [],
    "AND" => [],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    :IRIREF => [],
    "OR" => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    "START" => [],
    "|" => [],
    "}" => [],
  },
  :_semanticActions_1 => {
    "%" => [:codeDecl, :semanticActions],
  },
  :senseFlags => {
    "^" => ["^"],
  },
  :shapeAnd => {
    "(" => [:shapeNot, :_shapeAnd_1],
    "." => [:shapeNot, :_shapeAnd_1],
    "@" => [:shapeNot, :_shapeAnd_1],
    :ATPNAME_LN => [:shapeNot, :_shapeAnd_1],
    :ATPNAME_NS => [:shapeNot, :_shapeAnd_1],
    "BNODE" => [:shapeNot, :_shapeAnd_1],
    "CLOSED" => [:shapeNot, :_shapeAnd_1],
    "EXTRA" => [:shapeNot, :_shapeAnd_1],
    "FRACTIONDIGITS" => [:shapeNot, :_shapeAnd_1],
    "IRI" => [:shapeNot, :_shapeAnd_1],
    :IRIREF => [:shapeNot, :_shapeAnd_1],
    "LENGTH" => [:shapeNot, :_shapeAnd_1],
    "LITERAL" => [:shapeNot, :_shapeAnd_1],
    "MAXEXCLUSIVE" => [:shapeNot, :_shapeAnd_1],
    "MAXINCLUSIVE" => [:shapeNot, :_shapeAnd_1],
    "MAXLENGTH" => [:shapeNot, :_shapeAnd_1],
    "MINEXCLUSIVE" => [:shapeNot, :_shapeAnd_1],
    "MININCLUSIVE" => [:shapeNot, :_shapeAnd_1],
    "MINLENGTH" => [:shapeNot, :_shapeAnd_1],
    "NONLITERAL" => [:shapeNot, :_shapeAnd_1],
    "NOT" => [:shapeNot, :_shapeAnd_1],
    "PATTERN" => [:shapeNot, :_shapeAnd_1],
    :PNAME_LN => [:shapeNot, :_shapeAnd_1],
    :PNAME_NS => [:shapeNot, :_shapeAnd_1],
    "TOTALDIGITS" => [:shapeNot, :_shapeAnd_1],
    "[" => [:shapeNot, :_shapeAnd_1],
    "{" => [:shapeNot, :_shapeAnd_1],
    "~" => [:shapeNot, :_shapeAnd_1],
  },
  :_shapeAnd_1 => {
    ")" => [],
    "AND" => [:_shapeAnd_3],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    :IRIREF => [],
    "OR" => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    "START" => [],
  },
  :_shapeAnd_2 => {
    "AND" => ["AND", :shapeNot],
  },
  :_shapeAnd_3 => {
    "AND" => [:_shapeAnd_2, :_shapeAnd_1],
  },
  :shapeAtom => {
    "(" => [:_shapeAtom_2],
    "." => ["."],
    "@" => [:shapeOrRef],
    :ATPNAME_LN => [:shapeOrRef],
    :ATPNAME_NS => [:shapeOrRef],
    "BNODE" => [:_shapeAtom_1],
    "CLOSED" => [:shapeOrRef],
    "EXTRA" => [:shapeOrRef],
    "FRACTIONDIGITS" => [:_shapeAtom_1],
    "IRI" => [:_shapeAtom_1],
    :IRIREF => [:_shapeAtom_1],
    "LENGTH" => [:_shapeAtom_1],
    "LITERAL" => [:_shapeAtom_1],
    "MAXEXCLUSIVE" => [:_shapeAtom_1],
    "MAXINCLUSIVE" => [:_shapeAtom_1],
    "MAXLENGTH" => [:_shapeAtom_1],
    "MINEXCLUSIVE" => [:_shapeAtom_1],
    "MININCLUSIVE" => [:_shapeAtom_1],
    "MINLENGTH" => [:_shapeAtom_1],
    "NONLITERAL" => [:_shapeAtom_1],
    "PATTERN" => [:_shapeAtom_1],
    :PNAME_LN => [:_shapeAtom_1],
    :PNAME_NS => [:_shapeAtom_1],
    "TOTALDIGITS" => [:_shapeAtom_1],
    "[" => [:_shapeAtom_1],
    "{" => [:shapeOrRef],
    "~" => [:_shapeAtom_1],
  },
  :_shapeAtom_1 => {
    "BNODE" => [:nodeConstraint, :_shapeAtom_3],
    "FRACTIONDIGITS" => [:nodeConstraint, :_shapeAtom_3],
    "IRI" => [:nodeConstraint, :_shapeAtom_3],
    :IRIREF => [:nodeConstraint, :_shapeAtom_3],
    "LENGTH" => [:nodeConstraint, :_shapeAtom_3],
    "LITERAL" => [:nodeConstraint, :_shapeAtom_3],
    "MAXEXCLUSIVE" => [:nodeConstraint, :_shapeAtom_3],
    "MAXINCLUSIVE" => [:nodeConstraint, :_shapeAtom_3],
    "MAXLENGTH" => [:nodeConstraint, :_shapeAtom_3],
    "MINEXCLUSIVE" => [:nodeConstraint, :_shapeAtom_3],
    "MININCLUSIVE" => [:nodeConstraint, :_shapeAtom_3],
    "MINLENGTH" => [:nodeConstraint, :_shapeAtom_3],
    "NONLITERAL" => [:nodeConstraint, :_shapeAtom_3],
    "PATTERN" => [:nodeConstraint, :_shapeAtom_3],
    :PNAME_LN => [:nodeConstraint, :_shapeAtom_3],
    :PNAME_NS => [:nodeConstraint, :_shapeAtom_3],
    "TOTALDIGITS" => [:nodeConstraint, :_shapeAtom_3],
    "[" => [:nodeConstraint, :_shapeAtom_3],
    "~" => [:nodeConstraint, :_shapeAtom_3],
  },
  :_shapeAtom_2 => {
    "(" => ["(", :shapeExpression, ")"],
  },
  :_shapeAtom_3 => {
    ")" => [],
    "@" => [:shapeOrRef],
    "AND" => [],
    :ATPNAME_LN => [:shapeOrRef],
    :ATPNAME_NS => [:shapeOrRef],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    "CLOSED" => [:shapeOrRef],
    "EXTRA" => [:shapeOrRef],
    :IRIREF => [],
    "OR" => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    "START" => [],
    "{" => [:shapeOrRef],
  },
  :shapeDefinition => {
    "CLOSED" => [:_shapeDefinition_1, "{", :_shapeDefinition_2, "}", :_shapeDefinition_3, :semanticActions],
    "EXTRA" => [:_shapeDefinition_1, "{", :_shapeDefinition_2, "}", :_shapeDefinition_3, :semanticActions],
    "{" => [:_shapeDefinition_1, "{", :_shapeDefinition_2, "}", :_shapeDefinition_3, :semanticActions],
  },
  :_shapeDefinition_1 => {
    "CLOSED" => [:_shapeDefinition_5],
    "EXTRA" => [:_shapeDefinition_5],
    "{" => [],
  },
  :_shapeDefinition_2 => {
    "$" => [:tripleExpression],
    "&" => [:tripleExpression],
    "(" => [:tripleExpression],
    :IRIREF => [:tripleExpression],
    :PNAME_LN => [:tripleExpression],
    :PNAME_NS => [:tripleExpression],
    :RDF_TYPE => [:tripleExpression],
    "^" => [:tripleExpression],
    "}" => [],
  },
  :_shapeDefinition_3 => {
    "%" => [],
    ")" => [],
    "//" => [:_shapeDefinition_6],
    "AND" => [],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    :IRIREF => [],
    "OR" => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    "START" => [],
  },
  :_shapeDefinition_4 => {
    "CLOSED" => ["CLOSED"],
    "EXTRA" => [:extraPropertySet],
  },
  :_shapeDefinition_5 => {
    "CLOSED" => [:_shapeDefinition_4, :_shapeDefinition_1],
    "EXTRA" => [:_shapeDefinition_4, :_shapeDefinition_1],
  },
  :_shapeDefinition_6 => {
    "//" => [:annotation, :_shapeDefinition_3],
  },
  :shapeExprDecl => {
    :BLANK_NODE_LABEL => [:shapeLabel, :_shapeExprDecl_1],
    :IRIREF => [:shapeLabel, :_shapeExprDecl_1],
    :PNAME_LN => [:shapeLabel, :_shapeExprDecl_1],
    :PNAME_NS => [:shapeLabel, :_shapeExprDecl_1],
  },
  :_shapeExprDecl_1 => {
    "(" => [:shapeExpression],
    "." => [:shapeExpression],
    "@" => [:shapeExpression],
    :ATPNAME_LN => [:shapeExpression],
    :ATPNAME_NS => [:shapeExpression],
    "BNODE" => [:shapeExpression],
    "CLOSED" => [:shapeExpression],
    "EXTERNAL" => ["EXTERNAL"],
    "EXTRA" => [:shapeExpression],
    "FRACTIONDIGITS" => [:shapeExpression],
    "IRI" => [:shapeExpression],
    :IRIREF => [:shapeExpression],
    "LENGTH" => [:shapeExpression],
    "LITERAL" => [:shapeExpression],
    "MAXEXCLUSIVE" => [:shapeExpression],
    "MAXINCLUSIVE" => [:shapeExpression],
    "MAXLENGTH" => [:shapeExpression],
    "MINEXCLUSIVE" => [:shapeExpression],
    "MININCLUSIVE" => [:shapeExpression],
    "MINLENGTH" => [:shapeExpression],
    "NONLITERAL" => [:shapeExpression],
    "NOT" => [:shapeExpression],
    "PATTERN" => [:shapeExpression],
    :PNAME_LN => [:shapeExpression],
    :PNAME_NS => [:shapeExpression],
    "TOTALDIGITS" => [:shapeExpression],
    "[" => [:shapeExpression],
    "{" => [:shapeExpression],
    "~" => [:shapeExpression],
  },
  :shapeExpression => {
    "(" => [:shapeOr],
    "." => [:shapeOr],
    "@" => [:shapeOr],
    :ATPNAME_LN => [:shapeOr],
    :ATPNAME_NS => [:shapeOr],
    "BNODE" => [:shapeOr],
    "CLOSED" => [:shapeOr],
    "EXTRA" => [:shapeOr],
    "FRACTIONDIGITS" => [:shapeOr],
    "IRI" => [:shapeOr],
    :IRIREF => [:shapeOr],
    "LENGTH" => [:shapeOr],
    "LITERAL" => [:shapeOr],
    "MAXEXCLUSIVE" => [:shapeOr],
    "MAXINCLUSIVE" => [:shapeOr],
    "MAXLENGTH" => [:shapeOr],
    "MINEXCLUSIVE" => [:shapeOr],
    "MININCLUSIVE" => [:shapeOr],
    "MINLENGTH" => [:shapeOr],
    "NONLITERAL" => [:shapeOr],
    "NOT" => [:shapeOr],
    "PATTERN" => [:shapeOr],
    :PNAME_LN => [:shapeOr],
    :PNAME_NS => [:shapeOr],
    "TOTALDIGITS" => [:shapeOr],
    "[" => [:shapeOr],
    "{" => [:shapeOr],
    "~" => [:shapeOr],
  },
  :shapeLabel => {
    :BLANK_NODE_LABEL => [:blankNode],
    :IRIREF => [:iri],
    :PNAME_LN => [:iri],
    :PNAME_NS => [:iri],
  },
  :shapeNot => {
    "(" => [:_shapeNot_1, :shapeAtom],
    "." => [:_shapeNot_1, :shapeAtom],
    "@" => [:_shapeNot_1, :shapeAtom],
    :ATPNAME_LN => [:_shapeNot_1, :shapeAtom],
    :ATPNAME_NS => [:_shapeNot_1, :shapeAtom],
    "BNODE" => [:_shapeNot_1, :shapeAtom],
    "CLOSED" => [:_shapeNot_1, :shapeAtom],
    "EXTRA" => [:_shapeNot_1, :shapeAtom],
    "FRACTIONDIGITS" => [:_shapeNot_1, :shapeAtom],
    "IRI" => [:_shapeNot_1, :shapeAtom],
    :IRIREF => [:_shapeNot_1, :shapeAtom],
    "LENGTH" => [:_shapeNot_1, :shapeAtom],
    "LITERAL" => [:_shapeNot_1, :shapeAtom],
    "MAXEXCLUSIVE" => [:_shapeNot_1, :shapeAtom],
    "MAXINCLUSIVE" => [:_shapeNot_1, :shapeAtom],
    "MAXLENGTH" => [:_shapeNot_1, :shapeAtom],
    "MINEXCLUSIVE" => [:_shapeNot_1, :shapeAtom],
    "MININCLUSIVE" => [:_shapeNot_1, :shapeAtom],
    "MINLENGTH" => [:_shapeNot_1, :shapeAtom],
    "NONLITERAL" => [:_shapeNot_1, :shapeAtom],
    "NOT" => [:_shapeNot_1, :shapeAtom],
    "PATTERN" => [:_shapeNot_1, :shapeAtom],
    :PNAME_LN => [:_shapeNot_1, :shapeAtom],
    :PNAME_NS => [:_shapeNot_1, :shapeAtom],
    "TOTALDIGITS" => [:_shapeNot_1, :shapeAtom],
    "[" => [:_shapeNot_1, :shapeAtom],
    "{" => [:_shapeNot_1, :shapeAtom],
    "~" => [:_shapeNot_1, :shapeAtom],
  },
  :_shapeNot_1 => {
    "(" => [],
    "." => [],
    "@" => [],
    :ATPNAME_LN => [],
    :ATPNAME_NS => [],
    "BNODE" => [],
    "CLOSED" => [],
    "EXTRA" => [],
    "FRACTIONDIGITS" => [],
    "IRI" => [],
    :IRIREF => [],
    "LENGTH" => [],
    "LITERAL" => [],
    "MAXEXCLUSIVE" => [],
    "MAXINCLUSIVE" => [],
    "MAXLENGTH" => [],
    "MINEXCLUSIVE" => [],
    "MININCLUSIVE" => [],
    "MINLENGTH" => [],
    "NONLITERAL" => [],
    "NOT" => ["NOT"],
    "PATTERN" => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "TOTALDIGITS" => [],
    "[" => [],
    "{" => [],
    "~" => [],
  },
  :shapeOr => {
    "(" => [:shapeAnd, :_shapeOr_1],
    "." => [:shapeAnd, :_shapeOr_1],
    "@" => [:shapeAnd, :_shapeOr_1],
    :ATPNAME_LN => [:shapeAnd, :_shapeOr_1],
    :ATPNAME_NS => [:shapeAnd, :_shapeOr_1],
    "BNODE" => [:shapeAnd, :_shapeOr_1],
    "CLOSED" => [:shapeAnd, :_shapeOr_1],
    "EXTRA" => [:shapeAnd, :_shapeOr_1],
    "FRACTIONDIGITS" => [:shapeAnd, :_shapeOr_1],
    "IRI" => [:shapeAnd, :_shapeOr_1],
    :IRIREF => [:shapeAnd, :_shapeOr_1],
    "LENGTH" => [:shapeAnd, :_shapeOr_1],
    "LITERAL" => [:shapeAnd, :_shapeOr_1],
    "MAXEXCLUSIVE" => [:shapeAnd, :_shapeOr_1],
    "MAXINCLUSIVE" => [:shapeAnd, :_shapeOr_1],
    "MAXLENGTH" => [:shapeAnd, :_shapeOr_1],
    "MINEXCLUSIVE" => [:shapeAnd, :_shapeOr_1],
    "MININCLUSIVE" => [:shapeAnd, :_shapeOr_1],
    "MINLENGTH" => [:shapeAnd, :_shapeOr_1],
    "NONLITERAL" => [:shapeAnd, :_shapeOr_1],
    "NOT" => [:shapeAnd, :_shapeOr_1],
    "PATTERN" => [:shapeAnd, :_shapeOr_1],
    :PNAME_LN => [:shapeAnd, :_shapeOr_1],
    :PNAME_NS => [:shapeAnd, :_shapeOr_1],
    "TOTALDIGITS" => [:shapeAnd, :_shapeOr_1],
    "[" => [:shapeAnd, :_shapeOr_1],
    "{" => [:shapeAnd, :_shapeOr_1],
    "~" => [:shapeAnd, :_shapeOr_1],
  },
  :shapeOrRef => {
    "@" => [:_shapeOrRef_1],
    :ATPNAME_LN => [:ATPNAME_LN],
    :ATPNAME_NS => [:ATPNAME_NS],
    "CLOSED" => [:shapeDefinition],
    "EXTRA" => [:shapeDefinition],
    "{" => [:shapeDefinition],
  },
  :_shapeOrRef_1 => {
    "@" => ["@", :shapeLabel],
  },
  :_shapeOr_1 => {
    ")" => [],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    :IRIREF => [],
    "OR" => [:_shapeOr_3],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    "START" => [],
  },
  :_shapeOr_2 => {
    "OR" => ["OR", :shapeAnd],
  },
  :_shapeOr_3 => {
    "OR" => [:_shapeOr_2, :_shapeOr_1],
  },
  :shexDoc => {
    "%" => [:_shexDoc_1, :_shexDoc_2],
    "BASE" => [:_shexDoc_1, :_shexDoc_2],
    :BLANK_NODE_LABEL => [:_shexDoc_1, :_shexDoc_2],
    :IRIREF => [:_shexDoc_1, :_shexDoc_2],
    :PNAME_LN => [:_shexDoc_1, :_shexDoc_2],
    :PNAME_NS => [:_shexDoc_1, :_shexDoc_2],
    "PREFIX" => [:_shexDoc_1, :_shexDoc_2],
    "START" => [:_shexDoc_1, :_shexDoc_2],
  },
  :_shexDoc_1 => {
    "%" => [],
    "BASE" => [:_shexDoc_3],
    :BLANK_NODE_LABEL => [],
    :IRIREF => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [:_shexDoc_3],
    "START" => [],
  },
  :_shexDoc_2 => {
    "%" => [:_shexDoc_4],
    :BLANK_NODE_LABEL => [:_shexDoc_4],
    :IRIREF => [:_shexDoc_4],
    :PNAME_LN => [:_shexDoc_4],
    :PNAME_NS => [:_shexDoc_4],
    "START" => [:_shexDoc_4],
  },
  :_shexDoc_3 => {
    "BASE" => [:directive, :_shexDoc_1],
    "PREFIX" => [:directive, :_shexDoc_1],
  },
  :_shexDoc_4 => {
    "%" => [:_shexDoc_5, :_shexDoc_6],
    :BLANK_NODE_LABEL => [:_shexDoc_5, :_shexDoc_6],
    :IRIREF => [:_shexDoc_5, :_shexDoc_6],
    :PNAME_LN => [:_shexDoc_5, :_shexDoc_6],
    :PNAME_NS => [:_shexDoc_5, :_shexDoc_6],
    "START" => [:_shexDoc_5, :_shexDoc_6],
  },
  :_shexDoc_5 => {
    "%" => [:startActions],
    :BLANK_NODE_LABEL => [:notStartAction],
    :IRIREF => [:notStartAction],
    :PNAME_LN => [:notStartAction],
    :PNAME_NS => [:notStartAction],
    "START" => [:notStartAction],
  },
  :_shexDoc_6 => {
    "BASE" => [:_shexDoc_7],
    :BLANK_NODE_LABEL => [:_shexDoc_7],
    :IRIREF => [:_shexDoc_7],
    :PNAME_LN => [:_shexDoc_7],
    :PNAME_NS => [:_shexDoc_7],
    "PREFIX" => [:_shexDoc_7],
    "START" => [:_shexDoc_7],
  },
  :_shexDoc_7 => {
    "BASE" => [:statement, :_shexDoc_6],
    :BLANK_NODE_LABEL => [:statement, :_shexDoc_6],
    :IRIREF => [:statement, :_shexDoc_6],
    :PNAME_LN => [:statement, :_shexDoc_6],
    :PNAME_NS => [:statement, :_shexDoc_6],
    "PREFIX" => [:statement, :_shexDoc_6],
    "START" => [:statement, :_shexDoc_6],
  },
  :start => {
    "START" => ["START", "=", :shapeExpression],
  },
  :startActions => {
    "%" => [:codeDecl, :_startActions_1],
  },
  :_startActions_1 => {
    "%" => [:_startActions_2],
    "BASE" => [],
    :BLANK_NODE_LABEL => [],
    :IRIREF => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    "PREFIX" => [],
    "START" => [],
  },
  :_startActions_2 => {
    "%" => [:codeDecl, :_startActions_1],
  },
  :statement => {
    "BASE" => [:directive],
    :BLANK_NODE_LABEL => [:notStartAction],
    :IRIREF => [:notStartAction],
    :PNAME_LN => [:notStartAction],
    :PNAME_NS => [:notStartAction],
    "PREFIX" => [:directive],
    "START" => [:notStartAction],
  },
  :string => {
    :STRING_LITERAL1 => [:STRING_LITERAL1],
    :STRING_LITERAL2 => [:STRING_LITERAL2],
    :STRING_LITERAL_LONG1 => [:STRING_LITERAL_LONG1],
    :STRING_LITERAL_LONG2 => [:STRING_LITERAL_LONG2],
  },
  :stringFacet => {
    "LENGTH" => [:_stringFacet_1],
    "MAXLENGTH" => [:_stringFacet_1],
    "MINLENGTH" => [:_stringFacet_1],
    "PATTERN" => [:_stringFacet_2],
    "~" => [:_stringFacet_3],
  },
  :_stringFacet_1 => {
    "LENGTH" => [:stringLength, :INTEGER],
    "MAXLENGTH" => [:stringLength, :INTEGER],
    "MINLENGTH" => [:stringLength, :INTEGER],
  },
  :_stringFacet_2 => {
    "PATTERN" => ["PATTERN", :string],
  },
  :_stringFacet_3 => {
    "~" => ["~", :string],
  },
  :stringLength => {
    "LENGTH" => ["LENGTH"],
    "MAXLENGTH" => ["MAXLENGTH"],
    "MINLENGTH" => ["MINLENGTH"],
  },
  :tripleConstraint => {
    :IRIREF => [:_tripleConstraint_1, :predicate, :inlineShapeExpression, :_tripleConstraint_2, :_tripleConstraint_3, :semanticActions],
    :PNAME_LN => [:_tripleConstraint_1, :predicate, :inlineShapeExpression, :_tripleConstraint_2, :_tripleConstraint_3, :semanticActions],
    :PNAME_NS => [:_tripleConstraint_1, :predicate, :inlineShapeExpression, :_tripleConstraint_2, :_tripleConstraint_3, :semanticActions],
    :RDF_TYPE => [:_tripleConstraint_1, :predicate, :inlineShapeExpression, :_tripleConstraint_2, :_tripleConstraint_3, :semanticActions],
    "^" => [:_tripleConstraint_1, :predicate, :inlineShapeExpression, :_tripleConstraint_2, :_tripleConstraint_3, :semanticActions],
  },
  :_tripleConstraint_1 => {
    :IRIREF => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    :RDF_TYPE => [],
    "^" => [:senseFlags],
  },
  :_tripleConstraint_2 => {
    "%" => [],
    ")" => [],
    "*" => [:cardinality],
    "+" => [:cardinality],
    "//" => [],
    ";" => [],
    "?" => [:cardinality],
    :REPEAT_RANGE => [:cardinality],
    "|" => [],
    "}" => [],
  },
  :_tripleConstraint_3 => {
    "%" => [],
    ")" => [],
    "//" => [:_tripleConstraint_4],
    ";" => [],
    "|" => [],
    "}" => [],
  },
  :_tripleConstraint_4 => {
    "//" => [:annotation, :_tripleConstraint_3],
  },
  :tripleExpression => {
    "$" => [:oneOfTripleExpr],
    "&" => [:oneOfTripleExpr],
    "(" => [:oneOfTripleExpr],
    :IRIREF => [:oneOfTripleExpr],
    :PNAME_LN => [:oneOfTripleExpr],
    :PNAME_NS => [:oneOfTripleExpr],
    :RDF_TYPE => [:oneOfTripleExpr],
    "^" => [:oneOfTripleExpr],
  },
  :unaryTripleExpr => {
    "$" => [:_unaryTripleExpr_1],
    "&" => [:include],
    "(" => [:_unaryTripleExpr_1],
    :IRIREF => [:_unaryTripleExpr_1],
    :PNAME_LN => [:_unaryTripleExpr_1],
    :PNAME_NS => [:_unaryTripleExpr_1],
    :RDF_TYPE => [:_unaryTripleExpr_1],
    "^" => [:_unaryTripleExpr_1],
  },
  :_unaryTripleExpr_1 => {
    "$" => [:_unaryTripleExpr_2, :_unaryTripleExpr_3],
    "(" => [:_unaryTripleExpr_2, :_unaryTripleExpr_3],
    :IRIREF => [:_unaryTripleExpr_2, :_unaryTripleExpr_3],
    :PNAME_LN => [:_unaryTripleExpr_2, :_unaryTripleExpr_3],
    :PNAME_NS => [:_unaryTripleExpr_2, :_unaryTripleExpr_3],
    :RDF_TYPE => [:_unaryTripleExpr_2, :_unaryTripleExpr_3],
    "^" => [:_unaryTripleExpr_2, :_unaryTripleExpr_3],
  },
  :_unaryTripleExpr_2 => {
    "$" => [:productionLabel],
    "(" => [],
    :IRIREF => [],
    :PNAME_LN => [],
    :PNAME_NS => [],
    :RDF_TYPE => [],
    "^" => [],
  },
  :_unaryTripleExpr_3 => {
    "(" => [:bracketedTripleExpr],
    :IRIREF => [:tripleConstraint],
    :PNAME_LN => [:tripleConstraint],
    :PNAME_NS => [:tripleConstraint],
    :RDF_TYPE => [:tripleConstraint],
    "^" => [:tripleConstraint],
  },
  :valueSet => {
    "[" => ["[", :_valueSet_1, "]"],
  },
  :valueSetValue => {
    "." => [:iriRange],
    :DECIMAL => [:literal],
    :DOUBLE => [:literal],
    :INTEGER => [:literal],
    :IRIREF => [:iriRange],
    :PNAME_LN => [:iriRange],
    :PNAME_NS => [:iriRange],
    :STRING_LITERAL1 => [:literal],
    :STRING_LITERAL2 => [:literal],
    :STRING_LITERAL_LONG1 => [:literal],
    :STRING_LITERAL_LONG2 => [:literal],
    "false" => [:literal],
    "true" => [:literal],
  },
  :_valueSet_1 => {
    "." => [:_valueSet_2],
    :DECIMAL => [:_valueSet_2],
    :DOUBLE => [:_valueSet_2],
    :INTEGER => [:_valueSet_2],
    :IRIREF => [:_valueSet_2],
    :PNAME_LN => [:_valueSet_2],
    :PNAME_NS => [:_valueSet_2],
    :STRING_LITERAL1 => [:_valueSet_2],
    :STRING_LITERAL2 => [:_valueSet_2],
    :STRING_LITERAL_LONG1 => [:_valueSet_2],
    :STRING_LITERAL_LONG2 => [:_valueSet_2],
    "]" => [],
    "false" => [:_valueSet_2],
    "true" => [:_valueSet_2],
  },
  :_valueSet_2 => {
    "." => [:valueSetValue, :_valueSet_1],
    :DECIMAL => [:valueSetValue, :_valueSet_1],
    :DOUBLE => [:valueSetValue, :_valueSet_1],
    :INTEGER => [:valueSetValue, :_valueSet_1],
    :IRIREF => [:valueSetValue, :_valueSet_1],
    :PNAME_LN => [:valueSetValue, :_valueSet_1],
    :PNAME_NS => [:valueSetValue, :_valueSet_1],
    :STRING_LITERAL1 => [:valueSetValue, :_valueSet_1],
    :STRING_LITERAL2 => [:valueSetValue, :_valueSet_1],
    :STRING_LITERAL_LONG1 => [:valueSetValue, :_valueSet_1],
    :STRING_LITERAL_LONG2 => [:valueSetValue, :_valueSet_1],
    "false" => [:valueSetValue, :_valueSet_1],
    "true" => [:valueSetValue, :_valueSet_1],
  },
  :xsFacet => {
    "FRACTIONDIGITS" => [:numericFacet],
    "LENGTH" => [:stringFacet],
    "MAXEXCLUSIVE" => [:numericFacet],
    "MAXINCLUSIVE" => [:numericFacet],
    "MAXLENGTH" => [:stringFacet],
    "MINEXCLUSIVE" => [:numericFacet],
    "MININCLUSIVE" => [:numericFacet],
    "MINLENGTH" => [:stringFacet],
    "PATTERN" => [:stringFacet],
    "TOTALDIGITS" => [:numericFacet],
    "~" => [:stringFacet],
  },
}.freeze
TERMINALS =
[
  "$",
  "%",
  "&",
  "(",
  ")",
  "*",
  "+",
  "-",
  ".",
  "//",
  ";",
  "=",
  "?",
  "@",
  "AND",
  :ATPNAME_LN,
  :ATPNAME_NS,
  "BASE",
  :BLANK_NODE_LABEL,
  "BNODE",
  "CLOSED",
  :CODE,
  :DECIMAL,
  :DOUBLE,
  "EXTERNAL",
  "EXTRA",
  "FRACTIONDIGITS",
  :INTEGER,
  "IRI",
  :IRIREF,
  :LANGTAG,
  "LENGTH",
  "LITERAL",
  "MAXEXCLUSIVE",
  "MAXINCLUSIVE",
  "MAXLENGTH",
  "MINEXCLUSIVE",
  "MININCLUSIVE",
  "MINLENGTH",
  "NONLITERAL",
  "NOT",
  "OR",
  "PATTERN",
  :PNAME_LN,
  :PNAME_NS,
  "PREFIX",
  :RDF_TYPE,
  :REPEAT_RANGE,
  "START",
  :STRING_LITERAL1,
  :STRING_LITERAL2,
  :STRING_LITERAL_LONG1,
  :STRING_LITERAL_LONG2,
  "TOTALDIGITS",
  "[",
  "]",
  "^",
  "^^",
  "false",
  "true",
  "{",
  "|",
  "}",
  "~"
].freeze
FIRST =
{
  :annotation => [
    "//"],
  :_annotation_1 => [
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS,
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :_annotation_2 => [
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_annotation_3 => [
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS,
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :baseDecl => [
    "BASE"],
  :_baseDecl_1 => [
    :IRIREF],
  :blankNode => [
    :BLANK_NODE_LABEL],
  :booleanLiteral => [
    "true",
    "false"],
  :bracketedTripleExpr => [
    "("],
  :_bracketedTripleExpr_1 => [
    :_eps,
    "*",
    "+",
    "?",
    :REPEAT_RANGE],
  :_bracketedTripleExpr_2 => [
    :_eps,
    "//"],
  :_bracketedTripleExpr_3 => [
    "//"],
  :_bracketedTripleExpr_4 => [
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_bracketedTripleExpr_5 => [
    :_eps,
    "//"],
  :_bracketedTripleExpr_6 => [
    ")"],
  :_bracketedTripleExpr_7 => [
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :_eps,
    "//",
    "%"],
  :_bracketedTripleExpr_8 => [
    :_eps,
    "//",
    "%"],
  :cardinality => [
    "*",
    "+",
    "?",
    :REPEAT_RANGE],
  :codeDecl => [
    "%"],
  :_codeDecl_1 => [
    :CODE,
    "%"],
  :_codeDecl_2 => [
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_codeDecl_3 => [
    :CODE,
    "%"],
  :datatype => [
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :directive => [
    "BASE",
    "PREFIX"],
  :_empty => [
    :_eps],
  :exclusion => [
    "-"],
  :_exclusion_1 => [
    "~",
    :_eps],
  :_exclusion_2 => [
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_exclusion_3 => [
    "~",
    :_eps],
  :extraPropertySet => [
    "EXTRA"],
  :_extraPropertySet_1 => [
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_extraPropertySet_2 => [
    :_eps,
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_extraPropertySet_3 => [
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_extraPropertySet_4 => [
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_extraPropertySet_5 => [
    :_eps,
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_extraPropertySet_6 => [
    :_eps,
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :groupTripleExpr => [
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_groupTripleExpr_1 => [
    :_eps,
    ";"],
  :_groupTripleExpr_2 => [
    ";"],
  :_groupTripleExpr_3 => [
    ";"],
  :_groupTripleExpr_4 => [
    :_eps,
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_groupTripleExpr_5 => [
    :_eps,
    ";"],
  :_groupTripleExpr_6 => [
    :_eps,
    ";"],
  :_groupTripleExpr_7 => [
    :_eps,
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :include => [
    "&"],
  :_include_1 => [
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :inlineShapeAnd => [
    "NOT",
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "CLOSED",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "EXTRA"],
  :_inlineShapeAnd_1 => [
    :_eps,
    "AND"],
  :_inlineShapeAnd_2 => [
    "AND"],
  :_inlineShapeAnd_3 => [
    "AND"],
  :_inlineShapeAnd_4 => [
    :_eps,
    "AND"],
  :_inlineShapeAnd_5 => [
    :_eps,
    "AND"],
  :_inlineShapeAnd_6 => [
    "NOT",
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "CLOSED",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "EXTRA"],
  :inlineShapeAtom => [
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "CLOSED",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "EXTRA"],
  :_inlineShapeAtom_1 => [
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_inlineShapeAtom_2 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    "{",
    "CLOSED",
    "EXTRA"],
  :_inlineShapeAtom_3 => [
    "("],
  :_inlineShapeAtom_4 => [
    :_eps,
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    "{",
    "CLOSED",
    "EXTRA"],
  :_inlineShapeAtom_5 => [
    :_eps,
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_inlineShapeAtom_6 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    :_eps,
    "@",
    "{",
    "CLOSED",
    "EXTRA"],
  :_inlineShapeAtom_7 => [
    :_eps,
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_inlineShapeAtom_8 => [
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_inlineShapeAtom_9 => [
    ")"],
  :inlineShapeDefinition => [
    "{",
    "CLOSED",
    "EXTRA"],
  :_inlineShapeDefinition_1 => [
    :_eps,
    "CLOSED",
    "EXTRA"],
  :_inlineShapeDefinition_2 => [
    :_eps,
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_inlineShapeDefinition_3 => [
    "CLOSED",
    "EXTRA"],
  :_inlineShapeDefinition_4 => [
    "CLOSED",
    "EXTRA"],
  :_inlineShapeDefinition_5 => [
    "{"],
  :_inlineShapeDefinition_6 => [
    :_eps,
    "CLOSED",
    "EXTRA"],
  :_inlineShapeDefinition_7 => [
    "}",
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_inlineShapeDefinition_8 => [
    "}"],
  :inlineShapeExpression => [
    "NOT",
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "CLOSED",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "EXTRA"],
  :inlineShapeNot => [
    "NOT",
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "CLOSED",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "EXTRA"],
  :_inlineShapeNot_1 => [
    "NOT",
    :_eps],
  :_inlineShapeNot_2 => [
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "CLOSED",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "EXTRA"],
  :inlineShapeOr => [
    "NOT",
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "CLOSED",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "EXTRA"],
  :inlineShapeOrRef => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    "{",
    "CLOSED",
    "EXTRA"],
  :_inlineShapeOrRef_1 => [
    "@"],
  :_inlineShapeOrRef_2 => [
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_inlineShapeOr_1 => [
    :_eps,
    "OR"],
  :_inlineShapeOr_2 => [
    "OR"],
  :_inlineShapeOr_3 => [
    "OR"],
  :_inlineShapeOr_4 => [
    :_eps,
    "OR"],
  :_inlineShapeOr_5 => [
    :_eps,
    "OR"],
  :_inlineShapeOr_6 => [
    "NOT",
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "CLOSED",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "EXTRA"],
  :iri => [
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :iriRange => [
    ".",
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_1 => [
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_10 => [
    "~",
    :_eps],
  :_iriRange_11 => [
    :_eps,
    "-"],
  :_iriRange_12 => [
    :_eps,
    "-"],
  :_iriRange_13 => [
    "-"],
  :_iriRange_14 => [
    :_eps,
    "-"],
  :_iriRange_15 => [
    :_eps,
    "-"],
  :_iriRange_2 => [
    "."],
  :_iriRange_3 => [
    :_eps,
    "~"],
  :_iriRange_4 => [
    "~"],
  :_iriRange_5 => [
    :_eps,
    "-"],
  :_iriRange_6 => [
    "-"],
  :_iriRange_7 => [
    "-"],
  :_iriRange_8 => [
    :_eps,
    "-"],
  :_iriRange_9 => [
    "-"],
  :literal => [
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :nodeConstraint => [
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_1 => [
    "LITERAL"],
  :_nodeConstraint_10 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_11 => [
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_12 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_13 => [
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_14 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_15 => [
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_16 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_17 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_18 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH"],
  :_nodeConstraint_19 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH"],
  :_nodeConstraint_2 => [
    "IRI",
    "BNODE",
    "NONLITERAL"],
  :_nodeConstraint_20 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_21 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_22 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_23 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_24 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_25 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_3 => [
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_4 => [
    "["],
  :_nodeConstraint_5 => [
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_6 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_7 => [
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_nodeConstraint_8 => [
    :_eps,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH"],
  :_nodeConstraint_9 => [
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH"],
  :nonLiteralKind => [
    "IRI",
    "BNODE",
    "NONLITERAL"],
  :notStartAction => [
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :numericFacet => [
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_numericFacet_1 => [
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE"],
  :_numericFacet_2 => [
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_numericFacet_3 => [
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :_numericFacet_4 => [
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :_numericFacet_5 => [
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :_numericFacet_6 => [
    :INTEGER],
  :numericLength => [
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :numericLiteral => [
    :INTEGER,
    :DECIMAL,
    :DOUBLE],
  :numericRange => [
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE"],
  :oneOfTripleExpr => [
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_oneOfTripleExpr_1 => [
    :_eps,
    "|"],
  :_oneOfTripleExpr_2 => [
    "|"],
  :_oneOfTripleExpr_3 => [
    "|"],
  :_oneOfTripleExpr_4 => [
    :_eps,
    "|"],
  :_oneOfTripleExpr_5 => [
    :_eps,
    "|"],
  :_oneOfTripleExpr_6 => [
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :predicate => [
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :prefixDecl => [
    "PREFIX"],
  :_prefixDecl_1 => [
    :PNAME_NS],
  :prefixedName => [
    :PNAME_LN,
    :PNAME_NS],
  :productionLabel => [
    "$"],
  :_productionLabel_1 => [
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_productionLabel_2 => [
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :rdfLiteral => [
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :_rdfLiteral_1 => [
    :_eps,
    :LANGTAG,
    "^^"],
  :_rdfLiteral_2 => [
    :LANGTAG,
    "^^"],
  :_rdfLiteral_3 => [
    "^^"],
  :_rdfLiteral_4 => [
    :LANGTAG,
    :_eps,
    "^^"],
  :_rdfLiteral_5 => [
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :semanticActions => [
    :_eps,
    "%"],
  :_semanticActions_1 => [
    "%"],
  :_semanticActions_2 => [
    :_eps,
    "%"],
  :senseFlags => [
    "^"],
  :shapeAnd => [
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_shapeAnd_1 => [
    :_eps,
    "AND"],
  :_shapeAnd_2 => [
    "AND"],
  :_shapeAnd_3 => [
    "AND"],
  :_shapeAnd_4 => [
    :_eps,
    "AND"],
  :_shapeAnd_5 => [
    :_eps,
    "AND"],
  :_shapeAnd_6 => [
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :shapeAtom => [
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_shapeAtom_1 => [
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_shapeAtom_2 => [
    "("],
  :_shapeAtom_3 => [
    :_eps,
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    "{",
    "CLOSED",
    "EXTRA"],
  :_shapeAtom_4 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    :_eps,
    "@",
    "{",
    "CLOSED",
    "EXTRA"],
  :_shapeAtom_5 => [
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_shapeAtom_6 => [
    ")"],
  :shapeDefinition => [
    "{",
    "CLOSED",
    "EXTRA"],
  :_shapeDefinition_1 => [
    :_eps,
    "CLOSED",
    "EXTRA"],
  :_shapeDefinition_10 => [
    "}",
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeDefinition_11 => [
    "}"],
  :_shapeDefinition_12 => [
    :_eps,
    "//",
    "%"],
  :_shapeDefinition_2 => [
    :_eps,
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeDefinition_3 => [
    :_eps,
    "//"],
  :_shapeDefinition_4 => [
    "CLOSED",
    "EXTRA"],
  :_shapeDefinition_5 => [
    "CLOSED",
    "EXTRA"],
  :_shapeDefinition_6 => [
    "//"],
  :_shapeDefinition_7 => [
    "{"],
  :_shapeDefinition_8 => [
    :_eps,
    "CLOSED",
    "EXTRA"],
  :_shapeDefinition_9 => [
    :_eps,
    "//"],
  :shapeExprDecl => [
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeExprDecl_1 => [
    "EXTERNAL",
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_shapeExprDecl_2 => [
    "EXTERNAL",
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :shapeExpression => [
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :shapeLabel => [
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :shapeNot => [
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_shapeNot_1 => [
    "NOT",
    :_eps],
  :_shapeNot_2 => [
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :shapeOr => [
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :shapeOrRef => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    "{",
    "CLOSED",
    "EXTRA"],
  :_shapeOrRef_1 => [
    "@"],
  :_shapeOrRef_2 => [
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeOr_1 => [
    :_eps,
    "OR"],
  :_shapeOr_2 => [
    "OR"],
  :_shapeOr_3 => [
    "OR"],
  :_shapeOr_4 => [
    :_eps,
    "OR"],
  :_shapeOr_5 => [
    :_eps,
    "OR"],
  :_shapeOr_6 => [
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :shexDoc => [
    :_eps,
    "BASE",
    "PREFIX",
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_1 => [
    :_eps,
    "BASE",
    "PREFIX"],
  :_shexDoc_10 => [
    :_eps,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_11 => [
    :_eps,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_2 => [
    :_eps,
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_3 => [
    "BASE",
    "PREFIX"],
  :_shexDoc_4 => [
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_5 => [
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_6 => [
    :_eps,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_7 => [
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_8 => [
    :_eps,
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_9 => [
    :_eps,
    "BASE",
    "PREFIX"],
  :start => [
    "START"],
  :startActions => [
    "%"],
  :_startActions_1 => [
    :_eps,
    "%"],
  :_startActions_2 => [
    "%"],
  :_startActions_3 => [
    :_eps,
    "%"],
  :_startActions_4 => [
    :_eps,
    "%"],
  :_start_1 => [
    "="],
  :_start_2 => [
    "NOT",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :statement => [
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :string => [
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :stringFacet => [
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH"],
  :_stringFacet_1 => [
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH"],
  :_stringFacet_2 => [
    "PATTERN"],
  :_stringFacet_3 => [
    "~"],
  :_stringFacet_4 => [
    :INTEGER],
  :_stringFacet_5 => [
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :_stringFacet_6 => [
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :stringLength => [
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH"],
  :tripleConstraint => [
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_tripleConstraint_1 => [
    :_eps,
    "^"],
  :_tripleConstraint_2 => [
    :_eps,
    "*",
    "+",
    "?",
    :REPEAT_RANGE],
  :_tripleConstraint_3 => [
    :_eps,
    "//"],
  :_tripleConstraint_4 => [
    "//"],
  :_tripleConstraint_5 => [
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_tripleConstraint_6 => [
    :_eps,
    "//"],
  :_tripleConstraint_7 => [
    "NOT",
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "CLOSED",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "EXTRA"],
  :_tripleConstraint_8 => [
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :_eps,
    "//",
    "%"],
  :_tripleConstraint_9 => [
    :_eps,
    "//",
    "%"],
  :tripleExpression => [
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :unaryTripleExpr => [
    "&",
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_unaryTripleExpr_1 => [
    "$",
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_unaryTripleExpr_2 => [
    :_eps,
    "$"],
  :_unaryTripleExpr_3 => [
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_unaryTripleExpr_4 => [
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :valueSet => [
    "["],
  :valueSetValue => [
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_valueSet_1 => [
    :_eps,
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_valueSet_2 => [
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_valueSet_3 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_valueSet_4 => [
    :_eps,
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_valueSet_5 => [
    "]"],
  :xsFacet => [
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
}.freeze
FOLLOW =
{
  :annotation => [
    "//",
    "%",
    ")",
    "}",
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_annotation_1 => [
    "//",
    "%",
    ")",
    "}",
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_annotation_2 => [
    "//",
    "%",
    ")",
    "}",
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_annotation_3 => [
    "//",
    "%",
    ")",
    "}",
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :baseDecl => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_baseDecl_1 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :blankNode => [
    "EXTERNAL",
    "(",
    ")",
    "}",
    "LITERAL",
    ";",
    "|",
    "^",
    :RDF_TYPE,
    :IRIREF,
    "AND",
    "OR",
    :_eof,
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :PNAME_LN,
    :PNAME_NS,
    "NOT",
    "BASE",
    "PREFIX",
    "START",
    "PATTERN",
    "~",
    "//",
    "%",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "@",
    :BLANK_NODE_LABEL,
    "{",
    "CLOSED",
    "EXTRA"],
  :booleanLiteral => [
    "]",
    "//",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "%",
    ")",
    "}",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    :PNAME_LN,
    :PNAME_NS,
    "BASE",
    "PREFIX",
    "START",
    :BLANK_NODE_LABEL],
  :bracketedTripleExpr => [
    ")",
    "}",
    ";",
    "|"],
  :_bracketedTripleExpr_1 => [
    "//",
    "%",
    ")",
    "}",
    ";",
    "|"],
  :_bracketedTripleExpr_2 => [
    "%",
    ")",
    "}",
    ";",
    "|"],
  :_bracketedTripleExpr_3 => [
    "%",
    ")",
    "}",
    ";",
    "|"],
  :_bracketedTripleExpr_4 => [
    ")",
    "}",
    ";",
    "|"],
  :_bracketedTripleExpr_5 => [
    "%",
    ")",
    "}",
    ";",
    "|"],
  :_bracketedTripleExpr_6 => [
    ")",
    "}",
    ";",
    "|"],
  :_bracketedTripleExpr_7 => [
    ")",
    "}",
    ";",
    "|"],
  :_bracketedTripleExpr_8 => [
    ")",
    "}",
    ";",
    "|"],
  :cardinality => [
    "//",
    "%",
    ")",
    "}",
    ";",
    "|"],
  :codeDecl => [
    :_eof,
    "%",
    "BASE",
    "PREFIX",
    "START",
    ")",
    "}",
    :IRIREF,
    :BLANK_NODE_LABEL,
    "AND",
    "OR",
    ";",
    "|",
    :PNAME_LN,
    :PNAME_NS],
  :_codeDecl_1 => [
    :_eof,
    "%",
    "BASE",
    "PREFIX",
    "START",
    ")",
    "}",
    :IRIREF,
    :BLANK_NODE_LABEL,
    "AND",
    "OR",
    ";",
    "|",
    :PNAME_LN,
    :PNAME_NS],
  :_codeDecl_2 => [
    :_eof,
    "%",
    "BASE",
    "PREFIX",
    "START",
    ")",
    "}",
    :IRIREF,
    :BLANK_NODE_LABEL,
    "AND",
    "OR",
    ";",
    "|",
    :PNAME_LN,
    :PNAME_NS],
  :_codeDecl_3 => [
    :_eof,
    "%",
    "BASE",
    "PREFIX",
    "START",
    ")",
    "}",
    :IRIREF,
    :BLANK_NODE_LABEL,
    "AND",
    "OR",
    ";",
    "|",
    :PNAME_LN,
    :PNAME_NS],
  :datatype => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "]",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "//",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "%",
    ";",
    "|",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "EXTRA",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :directive => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :exclusion => [
    "-",
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_exclusion_1 => [
    "-",
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_exclusion_2 => [
    "-",
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_exclusion_3 => [
    "-",
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :extraPropertySet => [
    "{",
    "CLOSED",
    "EXTRA"],
  :_extraPropertySet_1 => [
    "{",
    "CLOSED",
    "EXTRA"],
  :_extraPropertySet_2 => [
    "{",
    "CLOSED",
    "EXTRA"],
  :_extraPropertySet_3 => [
    "{",
    "CLOSED",
    "EXTRA"],
  :_extraPropertySet_4 => [
    "{",
    "CLOSED",
    "EXTRA"],
  :_extraPropertySet_5 => [
    "{",
    "CLOSED",
    "EXTRA"],
  :_extraPropertySet_6 => [
    "{",
    "CLOSED",
    "EXTRA"],
  :groupTripleExpr => [
    ")",
    "}",
    "|"],
  :_groupTripleExpr_1 => [
    ")",
    "}",
    "|"],
  :_groupTripleExpr_2 => [
    ";",
    ")",
    "}",
    "|"],
  :_groupTripleExpr_3 => [
    ")",
    "}",
    "|"],
  :_groupTripleExpr_4 => [
    ";",
    ")",
    "}",
    "|"],
  :_groupTripleExpr_5 => [
    ")",
    "}",
    "|"],
  :_groupTripleExpr_6 => [
    ")",
    "}",
    "|"],
  :_groupTripleExpr_7 => [
    ";",
    ")",
    "}",
    "|"],
  :include => [
    ")",
    "}",
    ";",
    "|"],
  :_include_1 => [
    ")",
    "}",
    ";",
    "|"],
  :inlineShapeAnd => [
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAnd_1 => [
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAnd_2 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAnd_3 => [
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAnd_4 => [
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAnd_5 => [
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAnd_6 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :inlineShapeAtom => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAtom_1 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAtom_2 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAtom_3 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAtom_4 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAtom_5 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAtom_6 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAtom_7 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAtom_8 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeAtom_9 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :inlineShapeDefinition => [
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :IRIREF,
    ")",
    "}",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "//",
    "%",
    ";",
    "|",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_inlineShapeDefinition_1 => [
    "{"],
  :_inlineShapeDefinition_2 => [
    "}"],
  :_inlineShapeDefinition_3 => [
    "{",
    "CLOSED",
    "EXTRA"],
  :_inlineShapeDefinition_4 => [
    "{"],
  :_inlineShapeDefinition_5 => [
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :IRIREF,
    ")",
    "}",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "//",
    "%",
    ";",
    "|",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_inlineShapeDefinition_6 => [
    "{"],
  :_inlineShapeDefinition_7 => [
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :IRIREF,
    ")",
    "}",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "//",
    "%",
    ";",
    "|",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_inlineShapeDefinition_8 => [
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :IRIREF,
    ")",
    "}",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "//",
    "%",
    ";",
    "|",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :inlineShapeExpression => [
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :inlineShapeNot => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeNot_1 => [
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    :IRIREF,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "CLOSED",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "EXTRA"],
  :_inlineShapeNot_2 => [
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :inlineShapeOr => [
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :inlineShapeOrRef => [
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :IRIREF,
    ")",
    "}",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "//",
    "%",
    ";",
    "|",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_inlineShapeOrRef_1 => [
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :IRIREF,
    ")",
    "}",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "//",
    "%",
    ";",
    "|",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_inlineShapeOrRef_2 => [
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "AND",
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :IRIREF,
    ")",
    "}",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "//",
    "%",
    ";",
    "|",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_inlineShapeOr_1 => [
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeOr_2 => [
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeOr_3 => [
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeOr_4 => [
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeOr_5 => [
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :_inlineShapeOr_6 => [
    "OR",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ")",
    "}",
    "//",
    "%",
    ";",
    "|"],
  :iri => [
    "EXTERNAL",
    "~",
    :CODE,
    "%",
    "]",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    :IRIREF,
    :RDF_TYPE,
    "{",
    "@",
    ")",
    "}",
    "-",
    "//",
    :PNAME_LN,
    :PNAME_NS,
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "CLOSED",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "LITERAL",
    ";",
    "|",
    "^",
    ".",
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "EXTRA",
    "PATTERN",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "NOT",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "BASE",
    "PREFIX",
    "START",
    :BLANK_NODE_LABEL],
  :iriRange => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_1 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_10 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_11 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_12 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_13 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_14 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_15 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_2 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_3 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_4 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_5 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_6 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_7 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_8 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_iriRange_9 => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :literal => [
    "]",
    "//",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "%",
    ")",
    "}",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    :PNAME_LN,
    :PNAME_NS,
    "BASE",
    "PREFIX",
    "START",
    :BLANK_NODE_LABEL],
  :nodeConstraint => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_1 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_10 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_11 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_12 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_13 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_14 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_15 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_16 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_17 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_18 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_19 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_2 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_20 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_21 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_22 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_23 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_24 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_25 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_3 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_4 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_5 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_6 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_7 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_8 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_nodeConstraint_9 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :nonLiteralKind => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "PATTERN",
    "~",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "{",
    "}",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :notStartAction => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :numericFacet => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_numericFacet_1 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_numericFacet_2 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_numericFacet_3 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_numericFacet_4 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_numericFacet_5 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_numericFacet_6 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :numericLength => [
    :INTEGER],
  :numericLiteral => [
    "]",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "//",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "%",
    "}",
    "PATTERN",
    "~",
    "{",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    ";",
    "|",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    :PNAME_LN,
    :PNAME_NS,
    "EXTRA",
    :BLANK_NODE_LABEL],
  :numericRange => [
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2],
  :oneOfTripleExpr => [
    ")",
    "}"],
  :_oneOfTripleExpr_1 => [
    ")",
    "}"],
  :_oneOfTripleExpr_2 => [
    "|",
    ")",
    "}"],
  :_oneOfTripleExpr_3 => [
    ")",
    "}"],
  :_oneOfTripleExpr_4 => [
    ")",
    "}"],
  :_oneOfTripleExpr_5 => [
    ")",
    "}"],
  :_oneOfTripleExpr_6 => [
    "|",
    ")",
    "}"],
  :predicate => [
    :IRIREF,
    :RDF_TYPE,
    "{",
    :PNAME_LN,
    :PNAME_NS,
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "CLOSED",
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "EXTRA",
    "NOT",
    ".",
    "(",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "LITERAL",
    "@",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "PATTERN",
    "~",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :prefixDecl => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_prefixDecl_1 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :prefixedName => [
    "EXTERNAL",
    "~",
    :CODE,
    "%",
    "]",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    :IRIREF,
    :RDF_TYPE,
    "{",
    "@",
    ")",
    "}",
    "-",
    "//",
    :PNAME_LN,
    :PNAME_NS,
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "CLOSED",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "LITERAL",
    ";",
    "|",
    "^",
    ".",
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "EXTRA",
    "PATTERN",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "NOT",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "BASE",
    "PREFIX",
    "START",
    :BLANK_NODE_LABEL],
  :productionLabel => [
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_productionLabel_1 => [
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_productionLabel_2 => [
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :rdfLiteral => [
    "]",
    "//",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "%",
    ")",
    "}",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    :PNAME_LN,
    :PNAME_NS,
    "BASE",
    "PREFIX",
    "START",
    :BLANK_NODE_LABEL],
  :_rdfLiteral_1 => [
    "]",
    "//",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "%",
    ")",
    "}",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    :PNAME_LN,
    :PNAME_NS,
    "BASE",
    "PREFIX",
    "START",
    :BLANK_NODE_LABEL],
  :_rdfLiteral_2 => [
    "]",
    "//",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "%",
    ")",
    "}",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    :PNAME_LN,
    :PNAME_NS,
    "BASE",
    "PREFIX",
    "START",
    :BLANK_NODE_LABEL],
  :_rdfLiteral_3 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "]",
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "//",
    "PATTERN",
    "~",
    "{",
    "}",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "%",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    ";",
    "|",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "EXTRA",
    :PNAME_LN,
    :PNAME_NS,
    :BLANK_NODE_LABEL],
  :_rdfLiteral_4 => [
    "]",
    "//",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "%",
    ")",
    "}",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    :PNAME_LN,
    :PNAME_NS,
    "BASE",
    "PREFIX",
    "START",
    :BLANK_NODE_LABEL],
  :_rdfLiteral_5 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "]",
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "//",
    "PATTERN",
    "~",
    "{",
    "}",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "%",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    ";",
    "|",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    "EXTRA",
    :PNAME_LN,
    :PNAME_NS,
    :BLANK_NODE_LABEL],
  :semanticActions => [
    ")",
    "}",
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_semanticActions_1 => [
    ")",
    "}",
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_semanticActions_2 => [
    ")",
    "}",
    "AND",
    "OR",
    :_eof,
    ";",
    "|",
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :senseFlags => [
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :shapeAnd => [
    ")",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAnd_1 => [
    ")",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAnd_2 => [
    "AND",
    ")",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAnd_3 => [
    ")",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAnd_4 => [
    ")",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAnd_5 => [
    ")",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAnd_6 => [
    "AND",
    ")",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :shapeAtom => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAtom_1 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAtom_2 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAtom_3 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAtom_4 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAtom_5 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeAtom_6 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :shapeDefinition => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeDefinition_1 => [
    "{"],
  :_shapeDefinition_10 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeDefinition_11 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeDefinition_12 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeDefinition_2 => [
    "}"],
  :_shapeDefinition_3 => [
    "%",
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeDefinition_4 => [
    "{",
    "CLOSED",
    "EXTRA"],
  :_shapeDefinition_5 => [
    "{"],
  :_shapeDefinition_6 => [
    "%",
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeDefinition_7 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeDefinition_8 => [
    "{"],
  :_shapeDefinition_9 => [
    "%",
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :shapeExprDecl => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeExprDecl_1 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeExprDecl_2 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :shapeExpression => [
    ")",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :shapeLabel => [
    "EXTERNAL",
    ")",
    "}",
    "LITERAL",
    ";",
    "|",
    "AND",
    "OR",
    :_eof,
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    :IRIREF,
    "NOT",
    "BASE",
    "PREFIX",
    "START",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "//",
    "%",
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "@",
    :BLANK_NODE_LABEL,
    "{",
    "CLOSED",
    "EXTRA"],
  :shapeNot => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeNot_1 => [
    ".",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "(",
    "@",
    "LITERAL",
    "IRI",
    "BNODE",
    "NONLITERAL",
    "[",
    "{",
    :IRIREF,
    "CLOSED",
    :PNAME_LN,
    :PNAME_NS,
    "PATTERN",
    "~",
    "EXTRA",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS"],
  :_shapeNot_2 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :shapeOr => [
    ")",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :shapeOrRef => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeOrRef_1 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeOrRef_2 => [
    ")",
    "AND",
    "OR",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeOr_1 => [
    ")",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeOr_2 => [
    "OR",
    ")",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeOr_3 => [
    ")",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeOr_4 => [
    ")",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeOr_5 => [
    ")",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shapeOr_6 => [
    "OR",
    ")",
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :shexDoc => [
    :_eof],
  :_shexDoc_1 => [
    :_eof,
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_10 => [
    :_eof],
  :_shexDoc_11 => [
    :_eof],
  :_shexDoc_2 => [
    :_eof],
  :_shexDoc_3 => [
    :_eof,
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_4 => [
    :_eof],
  :_shexDoc_5 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_shexDoc_6 => [
    :_eof],
  :_shexDoc_7 => [
    :_eof],
  :_shexDoc_8 => [
    :_eof],
  :_shexDoc_9 => [
    :_eof,
    "START",
    "%",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :start => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :startActions => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_startActions_1 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_startActions_2 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_startActions_3 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_startActions_4 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_start_1 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_start_2 => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :statement => [
    :_eof,
    "BASE",
    "PREFIX",
    "START",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :string => [
    "^^",
    :LANGTAG,
    "]",
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "//",
    "PATTERN",
    "~",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    "%",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "{",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    ";",
    "|",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    :PNAME_LN,
    :PNAME_NS,
    "EXTRA",
    :BLANK_NODE_LABEL],
  :stringFacet => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "PATTERN",
    "~",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "{",
    "}",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_stringFacet_1 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "PATTERN",
    "~",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "{",
    "}",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_stringFacet_2 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "PATTERN",
    "~",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "{",
    "}",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_stringFacet_3 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "PATTERN",
    "~",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "{",
    "}",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_stringFacet_4 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "PATTERN",
    "~",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "{",
    "}",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_stringFacet_5 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "PATTERN",
    "~",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "{",
    "}",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_stringFacet_6 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "PATTERN",
    "~",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "{",
    "}",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :stringLength => [
    :INTEGER],
  :tripleConstraint => [
    ")",
    "}",
    ";",
    "|"],
  :_tripleConstraint_1 => [
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_tripleConstraint_2 => [
    "//",
    "%",
    ")",
    "}",
    ";",
    "|"],
  :_tripleConstraint_3 => [
    "%",
    ")",
    "}",
    ";",
    "|"],
  :_tripleConstraint_4 => [
    "%",
    ")",
    "}",
    ";",
    "|"],
  :_tripleConstraint_5 => [
    ")",
    "}",
    ";",
    "|"],
  :_tripleConstraint_6 => [
    "%",
    ")",
    "}",
    ";",
    "|"],
  :_tripleConstraint_7 => [
    ")",
    "}",
    ";",
    "|"],
  :_tripleConstraint_8 => [
    ")",
    "}",
    ";",
    "|"],
  :_tripleConstraint_9 => [
    ")",
    "}",
    ";",
    "|"],
  :tripleExpression => [
    "}"],
  :unaryTripleExpr => [
    ")",
    "}",
    ";",
    "|"],
  :_unaryTripleExpr_1 => [
    ")",
    "}",
    ";",
    "|"],
  :_unaryTripleExpr_2 => [
    "(",
    "^",
    :RDF_TYPE,
    :IRIREF,
    :PNAME_LN,
    :PNAME_NS],
  :_unaryTripleExpr_3 => [
    ")",
    "}",
    ";",
    "|"],
  :_unaryTripleExpr_4 => [
    ")",
    "}",
    ";",
    "|"],
  :valueSet => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :valueSetValue => [
    "]",
    ".",
    :INTEGER,
    :DECIMAL,
    :DOUBLE,
    "true",
    "false",
    :IRIREF,
    :STRING_LITERAL1,
    :STRING_LITERAL_LONG1,
    :STRING_LITERAL2,
    :STRING_LITERAL_LONG2,
    :PNAME_LN,
    :PNAME_NS],
  :_valueSet_1 => [
    "]"],
  :_valueSet_2 => [
    "]"],
  :_valueSet_3 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :_valueSet_4 => [
    "]"],
  :_valueSet_5 => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
  :xsFacet => [
    :ATPNAME_LN,
    :ATPNAME_NS,
    "@",
    ")",
    "AND",
    "OR",
    :_eof,
    "*",
    "+",
    "?",
    :REPEAT_RANGE,
    "PATTERN",
    "~",
    "{",
    "}",
    "LENGTH",
    "MINLENGTH",
    "MAXLENGTH",
    "MININCLUSIVE",
    "MINEXCLUSIVE",
    "MAXINCLUSIVE",
    "MAXEXCLUSIVE",
    "TOTALDIGITS",
    "FRACTIONDIGITS",
    "CLOSED",
    "BASE",
    "PREFIX",
    "START",
    "//",
    "%",
    ";",
    "|",
    "EXTRA",
    :IRIREF,
    :BLANK_NODE_LABEL,
    :PNAME_LN,
    :PNAME_NS],
}.freeze
CLEANUP =
{
  :_bracketedTripleExpr_1 => :opt,
  :_bracketedTripleExpr_2 => :star,
  :_bracketedTripleExpr_3 => :merge,
  :_exclusion_1 => :opt,
  :_extraPropertySet_1 => :plus,
  :_extraPropertySet_2 => :star,
  :_extraPropertySet_3 => :merge,
  :_groupTripleExpr_1 => :star,
  :_groupTripleExpr_3 => :merge,
  :_groupTripleExpr_4 => :opt,
  :_inlineShapeAnd_1 => :star,
  :_inlineShapeAnd_3 => :merge,
  :_inlineShapeAtom_4 => :opt,
  :_inlineShapeAtom_5 => :opt,
  :_inlineShapeDefinition_1 => :star,
  :_inlineShapeDefinition_2 => :opt,
  :_inlineShapeDefinition_4 => :merge,
  :_inlineShapeNot_1 => :opt,
  :_inlineShapeOr_1 => :star,
  :_inlineShapeOr_3 => :merge,
  :_iriRange_3 => :opt,
  :_iriRange_5 => :star,
  :_iriRange_6 => :merge,
  :_iriRange_7 => :plus,
  :_iriRange_8 => :star,
  :_iriRange_9 => :merge,
  :_nodeConstraint_10 => :star,
  :_nodeConstraint_11 => :merge,
  :_nodeConstraint_12 => :star,
  :_nodeConstraint_13 => :merge,
  :_nodeConstraint_14 => :star,
  :_nodeConstraint_15 => :merge,
  :_nodeConstraint_5 => :plus,
  :_nodeConstraint_6 => :star,
  :_nodeConstraint_7 => :merge,
  :_nodeConstraint_8 => :star,
  :_nodeConstraint_9 => :merge,
  :_oneOfTripleExpr_1 => :star,
  :_oneOfTripleExpr_3 => :merge,
  :_rdfLiteral_1 => :opt,
  :semanticActions => :star,
  :_semanticActions_1 => :merge,
  :_shapeAnd_1 => :star,
  :_shapeAnd_3 => :merge,
  :_shapeAtom_3 => :opt,
  :_shapeDefinition_1 => :star,
  :_shapeDefinition_2 => :opt,
  :_shapeDefinition_3 => :star,
  :_shapeDefinition_5 => :merge,
  :_shapeDefinition_6 => :merge,
  :_shapeNot_1 => :opt,
  :_shapeOr_1 => :star,
  :_shapeOr_3 => :merge,
  :_shexDoc_1 => :star,
  :_shexDoc_2 => :opt,
  :_shexDoc_3 => :merge,
  :_shexDoc_6 => :star,
  :_shexDoc_7 => :merge,
  :startActions => :plus,
  :_startActions_1 => :star,
  :_startActions_2 => :merge,
  :_tripleConstraint_1 => :opt,
  :_tripleConstraint_2 => :opt,
  :_tripleConstraint_3 => :star,
  :_tripleConstraint_4 => :merge,
  :_unaryTripleExpr_2 => :opt,
  :_valueSet_1 => :star,
  :_valueSet_2 => :merge,
}.freeze
PASS =
[
  [:seq, "#", [:star, [:range, "^\r\n"]]]
].freeze