Module: SPARQL::Grammar::Meta

Included in:
Parser
Defined in:
vendor/bundler/ruby/3.3.0/bundler/gems/sparql-796d3be4aa08/lib/sparql/grammar/meta.rb

Overview

This file is automatically generated by ebnf version 2.5.0 Derived from etc/sparql12.bnf

Constant Summary collapse

RULES =
[
  EBNF::Rule.new(:QueryUnit, nil, [:opt, :Query]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Query, nil, [:seq, :Prologue, :_Query_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Query_1, nil, [:alt, :SelectQuery, :ConstructQuery, :DescribeQuery, :AskQuery]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:UpdateUnit, nil, [:seq, :Update]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Prologue, nil, [:star, :_Prologue_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Prologue_1, nil, [:alt, :BaseDecl, :PrefixDecl]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:BaseDecl, nil, [:seq, "BASE", :IRIREF]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PrefixDecl, nil, [:seq, "PREFIX", :PNAME_NS, :IRIREF]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:SelectQuery, nil, [:seq, :SelectClause, :_SelectQuery_1, :WhereClause, :SolutionModifier, :ValuesClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SelectQuery_1, nil, [:star, :DatasetClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:SubSelect, nil, [:seq, :SelectClause, :WhereClause, :SolutionModifier, :ValuesClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:SelectClause, nil, [:seq, "SELECT", :_SelectClause_1, :_SelectClause_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SelectClause_1, nil, [:opt, :_SelectClause_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SelectClause_3, nil, [:alt, "DISTINCT", "REDUCED"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SelectClause_2, nil, [:alt, :_SelectClause_4, "*"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SelectClause_4, nil, [:plus, :_SelectClause_5]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SelectClause_5, nil, [:alt, :Var, :_SelectClause_6]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SelectClause_6, nil, [:seq, "(", :Expression, "AS", :Var, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ConstructQuery, nil, [:seq, "CONSTRUCT", :_ConstructQuery_1, :ValuesClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConstructQuery_1, nil, [:alt, :_ConstructQuery_2, :_ConstructQuery_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConstructQuery_2, nil, [:seq, :ConstructTemplate, :_ConstructQuery_4, :WhereClause, :SolutionModifier]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConstructQuery_4, nil, [:star, :DatasetClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConstructQuery_3, nil, [:seq, :_ConstructQuery_5, "WHERE", "{", :_ConstructQuery_6, "}", :SolutionModifier]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConstructQuery_5, nil, [:star, :DatasetClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConstructQuery_6, nil, [:opt, :TriplesTemplate]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DescribeQuery, nil, [:seq, "DESCRIBE", :_DescribeQuery_1, :_DescribeQuery_2, :_DescribeQuery_3, :SolutionModifier, :ValuesClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DescribeQuery_1, nil, [:alt, :_DescribeQuery_4, "*"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DescribeQuery_4, nil, [:plus, :VarOrIri]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DescribeQuery_2, nil, [:star, :DatasetClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DescribeQuery_3, nil, [:opt, :WhereClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:AskQuery, nil, [:seq, "ASK", :_AskQuery_1, :WhereClause, :SolutionModifier, :ValuesClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AskQuery_1, nil, [:star, :DatasetClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DatasetClause, nil, [:seq, "FROM", :_DatasetClause_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DatasetClause_1, nil, [:alt, :DefaultGraphClause, :NamedGraphClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DefaultGraphClause, nil, [:seq, :SourceSelector]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:NamedGraphClause, nil, [:seq, "NAMED", :SourceSelector]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:SourceSelector, nil, [:seq, :iri]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:WhereClause, nil, [:seq, :_WhereClause_1, :GroupGraphPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_WhereClause_1, nil, [:opt, "WHERE"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:SolutionModifier, nil, [:seq, :_SolutionModifier_1, :_SolutionModifier_2, :_SolutionModifier_3, :_SolutionModifier_4]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SolutionModifier_1, nil, [:opt, :GroupClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SolutionModifier_2, nil, [:opt, :HavingClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SolutionModifier_3, nil, [:opt, :OrderClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SolutionModifier_4, nil, [:opt, :LimitOffsetClauses]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GroupClause, nil, [:seq, "GROUP", "BY", :_GroupClause_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupClause_1, nil, [:plus, :GroupCondition]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GroupCondition, nil, [:alt, :BuiltInCall, :FunctionCall, :_GroupCondition_1, :Var]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupCondition_1, nil, [:seq, "(", :Expression, :_GroupCondition_2, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupCondition_2, nil, [:opt, :_GroupCondition_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupCondition_3, nil, [:seq, "AS", :Var]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:HavingClause, nil, [:seq, "HAVING", :_HavingClause_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_HavingClause_1, nil, [:plus, :HavingCondition]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:HavingCondition, nil, [:seq, :Constraint]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:OrderClause, nil, [:seq, "ORDER", "BY", :_OrderClause_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_OrderClause_1, nil, [:plus, :OrderCondition]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:OrderCondition, nil, [:alt, :_OrderCondition_1, :_OrderCondition_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_OrderCondition_1, nil, [:seq, :_OrderCondition_3, :BrackettedExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_OrderCondition_3, nil, [:alt, "ASC", "DESC"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_OrderCondition_2, nil, [:alt, :Constraint, :Var]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:LimitOffsetClauses, nil, [:alt, :_LimitOffsetClauses_1, :_LimitOffsetClauses_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LimitOffsetClauses_1, nil, [:seq, :LimitClause, :_LimitOffsetClauses_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LimitOffsetClauses_3, nil, [:opt, :OffsetClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LimitOffsetClauses_2, nil, [:seq, :OffsetClause, :_LimitOffsetClauses_4]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LimitOffsetClauses_4, nil, [:opt, :LimitClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:LimitClause, nil, [:seq, "LIMIT", :INTEGER]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:OffsetClause, nil, [:seq, "OFFSET", :INTEGER]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ValuesClause, nil, [:opt, :_ValuesClause_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ValuesClause_1, nil, [:seq, "VALUES", :DataBlock]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Update, nil, [:seq, :Prologue, :_Update_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Update_1, nil, [:opt, :_Update_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Update_2, nil, [:seq, :Update1, :_Update_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Update_3, nil, [:opt, :_Update_4]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Update_4, nil, [:seq, ";", :Update]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Update1, nil, [:alt, :Load, :Clear, :Drop, :Add, :Move, :Copy, :Create, :DeleteWhere, :Modify, :InsertData, :DeleteData]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Load, nil, [:seq, "LOAD", :_Load_1, :iri, :_Load_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Load_1, nil, [:opt, "SILENT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Load_2, nil, [:opt, :_Load_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Load_3, nil, [:seq, "INTO", :GraphRef]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Clear, nil, [:seq, "CLEAR", :_Clear_1, :GraphRefAll]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Clear_1, nil, [:opt, "SILENT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Drop, nil, [:seq, "DROP", :_Drop_1, :GraphRefAll]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Drop_1, nil, [:opt, "SILENT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Create, nil, [:seq, "CREATE", :_Create_1, :GraphRef]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Create_1, nil, [:opt, "SILENT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Add, nil, [:seq, "ADD", :_Add_1, :GraphOrDefault, "TO", :GraphOrDefault]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Add_1, nil, [:opt, "SILENT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Move, nil, [:seq, "MOVE", :_Move_1, :GraphOrDefault, "TO", :GraphOrDefault]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Move_1, nil, [:opt, "SILENT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Copy, nil, [:seq, "COPY", :_Copy_1, :GraphOrDefault, "TO", :GraphOrDefault]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Copy_1, nil, [:opt, "SILENT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:InsertData, nil, [:seq, "INSERT DATA", :QuadData]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DeleteData, nil, [:seq, "DELETE DATA", :QuadData]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DeleteWhere, nil, [:seq, "DELETE WHERE", :QuadPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Modify, nil, [:seq, :_Modify_1, :_Modify_2, :_Modify_3, "WHERE", :GroupGraphPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Modify_1, nil, [:opt, :_Modify_4]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Modify_4, nil, [:seq, "WITH", :iri]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Modify_2, nil, [:alt, :_Modify_5, :InsertClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Modify_5, nil, [:seq, :DeleteClause, :_Modify_6]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Modify_6, nil, [:opt, :InsertClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Modify_3, nil, [:star, :UsingClause]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DeleteClause, nil, [:seq, "DELETE", :QuadPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:InsertClause, nil, [:seq, "INSERT", :QuadPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:UsingClause, nil, [:seq, "USING", :_UsingClause_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_UsingClause_1, nil, [:alt, :iri, :_UsingClause_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_UsingClause_2, nil, [:seq, "NAMED", :iri]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GraphOrDefault, nil, [:alt, "DEFAULT", :_GraphOrDefault_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GraphOrDefault_1, nil, [:seq, :_GraphOrDefault_2, :iri]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GraphOrDefault_2, nil, [:opt, "GRAPH"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GraphRef, nil, [:seq, "GRAPH", :iri]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GraphRefAll, nil, [:alt, :GraphRef, "DEFAULT", "NAMED", "ALL"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:QuadPattern, nil, [:seq, "{", :Quads, "}"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:QuadData, nil, [:seq, "{", :Quads, "}"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Quads, nil, [:seq, :_Quads_1, :_Quads_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Quads_1, nil, [:opt, :TriplesTemplate]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Quads_2, nil, [:star, :_Quads_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Quads_3, nil, [:seq, :QuadsNotTriples, :_Quads_4, :_Quads_5]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Quads_4, nil, [:opt, "."]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Quads_5, nil, [:opt, :TriplesTemplate]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:QuadsNotTriples, nil, [:seq, "GRAPH", :VarOrIri, "{", :_QuadsNotTriples_1, "}"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_QuadsNotTriples_1, nil, [:opt, :TriplesTemplate]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TriplesTemplate, nil, [:seq, :TriplesSameSubject, :_TriplesTemplate_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TriplesTemplate_1, nil, [:opt, :_TriplesTemplate_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TriplesTemplate_2, nil, [:seq, ".", :_TriplesTemplate_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TriplesTemplate_3, nil, [:opt, :TriplesTemplate]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GroupGraphPattern, nil, [:seq, "{", :_GroupGraphPattern_1, "}"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupGraphPattern_1, nil, [:alt, :SubSelect, :GroupGraphPatternSub]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GroupGraphPatternSub, nil, [:seq, :_GroupGraphPatternSub_1, :_GroupGraphPatternSub_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupGraphPatternSub_1, nil, [:opt, :TriplesBlock]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupGraphPatternSub_2, nil, [:star, :_GroupGraphPatternSub_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupGraphPatternSub_3, nil, [:seq, :GraphPatternNotTriples, :_GroupGraphPatternSub_4, :_GroupGraphPatternSub_5]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupGraphPatternSub_4, nil, [:opt, "."]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupGraphPatternSub_5, nil, [:opt, :TriplesBlock]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TriplesBlock, nil, [:seq, :TriplesSameSubjectPath, :_TriplesBlock_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TriplesBlock_1, nil, [:opt, :_TriplesBlock_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TriplesBlock_2, nil, [:seq, ".", :_TriplesBlock_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TriplesBlock_3, nil, [:opt, :TriplesBlock]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ReifiedTripleBlock, nil, [:seq, :ReifiedTriple, :PropertyList]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ReifiedTripleBlockPath, nil, [:seq, :ReifiedTriple, :PropertyListPath]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GraphPatternNotTriples, nil, [:alt, :GroupOrUnionGraphPattern, :OptionalGraphPattern, :MinusGraphPattern, :GraphGraphPattern, :ServiceGraphPattern, :Filter, :Bind, :InlineData]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:OptionalGraphPattern, nil, [:seq, "OPTIONAL", :GroupGraphPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GraphGraphPattern, nil, [:seq, "GRAPH", :VarOrIri, :GroupGraphPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ServiceGraphPattern, nil, [:seq, "SERVICE", :_ServiceGraphPattern_1, :VarOrIri, :GroupGraphPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ServiceGraphPattern_1, nil, [:opt, "SILENT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Bind, nil, [:seq, "BIND", "(", :Expression, "AS", :Var, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:InlineData, nil, [:seq, "VALUES", :DataBlock]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DataBlock, nil, [:alt, :InlineDataOneVar, :InlineDataFull]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:InlineDataOneVar, nil, [:seq, :Var, "{", :_InlineDataOneVar_1, "}"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_InlineDataOneVar_1, nil, [:star, :DataBlockValue]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:InlineDataFull, nil, [:seq, :_InlineDataFull_1, "{", :_InlineDataFull_2, "}"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_InlineDataFull_1, nil, [:alt, :NIL, :_InlineDataFull_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_InlineDataFull_3, nil, [:seq, "(", :_InlineDataFull_4, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_InlineDataFull_4, nil, [:star, :Var]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_InlineDataFull_2, nil, [:star, :_InlineDataFull_5]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_InlineDataFull_5, nil, [:alt, :_InlineDataFull_6, :NIL]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_InlineDataFull_6, nil, [:seq, "(", :_InlineDataFull_7, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_InlineDataFull_7, nil, [:star, :DataBlockValue]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DataBlockValue, nil, [:alt, :iri, :RDFLiteral, :NumericLiteral, :BooleanLiteral, "UNDEF", :TripleTermData]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Reifier, nil, [:seq, "~", :_Reifier_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Reifier_1, nil, [:opt, :VarOrReifierId]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:VarOrReifierId, nil, [:alt, :Var, :iri, :BlankNode]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:MinusGraphPattern, nil, [:seq, "MINUS", :GroupGraphPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GroupOrUnionGraphPattern, nil, [:seq, :GroupGraphPattern, :_GroupOrUnionGraphPattern_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupOrUnionGraphPattern_1, nil, [:star, :_GroupOrUnionGraphPattern_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_GroupOrUnionGraphPattern_2, nil, [:seq, "UNION", :GroupGraphPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Filter, nil, [:seq, "FILTER", :Constraint]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Constraint, nil, [:alt, :BrackettedExpression, :BuiltInCall, :FunctionCall]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:FunctionCall, nil, [:seq, :iri, :ArgList]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ArgList, nil, [:alt, :NIL, :_ArgList_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ArgList_1, nil, [:seq, "(", :_ArgList_2, :Expression, :_ArgList_3, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ArgList_2, nil, [:opt, "DISTINCT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ArgList_3, nil, [:star, :_ArgList_4]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ArgList_4, nil, [:seq, ",", :Expression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ExpressionList, nil, [:alt, :NIL, :_ExpressionList_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ExpressionList_1, nil, [:seq, "(", :Expression, :_ExpressionList_2, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ExpressionList_2, nil, [:star, :_ExpressionList_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ExpressionList_3, nil, [:seq, ",", :Expression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ConstructTemplate, nil, [:seq, "{", :_ConstructTemplate_1, "}"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConstructTemplate_1, nil, [:opt, :ConstructTriples]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ConstructTriples, nil, [:seq, :TriplesSameSubject, :_ConstructTriples_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConstructTriples_1, nil, [:opt, :_ConstructTriples_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConstructTriples_2, nil, [:seq, ".", :_ConstructTriples_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConstructTriples_3, nil, [:opt, :ConstructTriples]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TriplesSameSubject, nil, [:alt, :_TriplesSameSubject_1, :_TriplesSameSubject_2, :ReifiedTripleBlock]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TriplesSameSubject_1, nil, [:seq, :VarOrTerm, :PropertyListNotEmpty]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TriplesSameSubject_2, nil, [:seq, :TriplesNode, :PropertyList]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PropertyList, nil, [:opt, :PropertyListNotEmpty]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PropertyListNotEmpty, nil, [:seq, :Verb, :ObjectList, :_PropertyListNotEmpty_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PropertyListNotEmpty_1, nil, [:star, :_PropertyListNotEmpty_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PropertyListNotEmpty_2, nil, [:seq, ";", :_PropertyListNotEmpty_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PropertyListNotEmpty_3, nil, [:opt, :_PropertyListNotEmpty_4]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PropertyListNotEmpty_4, nil, [:seq, :Verb, :ObjectList]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Verb, nil, [:alt, :VarOrIri, "a"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ObjectList, nil, [:seq, :Object, :_ObjectList_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ObjectList_1, nil, [:star, :_ObjectList_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ObjectList_2, nil, [:seq, ",", :Object]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Object, nil, [:seq, :GraphNode, :Annotation]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TriplesSameSubjectPath, nil, [:alt, :_TriplesSameSubjectPath_1, :_TriplesSameSubjectPath_2, :ReifiedTripleBlockPath]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TriplesSameSubjectPath_1, nil, [:seq, :VarOrTerm, :PropertyListPathNotEmpty]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TriplesSameSubjectPath_2, nil, [:seq, :TriplesNodePath, :PropertyListPath]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PropertyListPath, nil, [:opt, :PropertyListPathNotEmpty]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PropertyListPathNotEmpty, nil, [:seq, :_PropertyListPathNotEmpty_1, :ObjectListPath, :_PropertyListPathNotEmpty_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PropertyListPathNotEmpty_1, nil, [:alt, :VerbPath, :VerbSimple]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PropertyListPathNotEmpty_2, nil, [:star, :_PropertyListPathNotEmpty_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PropertyListPathNotEmpty_3, nil, [:seq, ";", :_PropertyListPathNotEmpty_4]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PropertyListPathNotEmpty_4, nil, [:opt, :_PropertyListPathNotEmpty_5]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PropertyListPathNotEmpty_5, nil, [:seq, :_PropertyListPathNotEmpty_6, :ObjectListPath]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PropertyListPathNotEmpty_6, nil, [:alt, :VerbPath, :VerbSimple]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:VerbPath, nil, [:seq, :Path]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:VerbSimple, nil, [:seq, :Var]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ObjectListPath, nil, [:seq, :ObjectPath, :_ObjectListPath_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ObjectListPath_1, nil, [:star, :_ObjectListPath_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ObjectListPath_2, nil, [:seq, ",", :ObjectPath]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ObjectPath, nil, [:seq, :GraphNodePath, :AnnotationPath]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Path, nil, [:seq, :PathAlternative]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PathAlternative, nil, [:seq, :PathSequence, :_PathAlternative_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathAlternative_1, nil, [:star, :_PathAlternative_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathAlternative_2, nil, [:seq, "|", :PathSequence]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PathSequence, nil, [:seq, :PathEltOrInverse, :_PathSequence_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathSequence_1, nil, [:star, :_PathSequence_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathSequence_2, nil, [:seq, "/", :PathEltOrInverse]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PathElt, nil, [:seq, :PathPrimary, :_PathElt_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathElt_1, nil, [:opt, :PathMod]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PathEltOrInverse, nil, [:alt, :PathElt, :_PathEltOrInverse_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathEltOrInverse_1, nil, [:seq, "^", :PathElt]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PathMod, nil, [:alt, "?", "*", "+", :_PathMod_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathMod_1, nil, [:seq, "{", :_PathMod_2, :_PathMod_3, "}"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathMod_2, nil, [:opt, :INTEGER]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathMod_3, nil, [:opt, :_PathMod_4]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathMod_4, nil, [:seq, ",", :_PathMod_5]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathMod_5, nil, [:opt, :INTEGER]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PathPrimary, nil, [:alt, :iri, "a", :_PathPrimary_1, :_PathPrimary_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathPrimary_1, nil, [:seq, "!", :PathNegatedPropertySet]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathPrimary_2, nil, [:seq, "(", :Path, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PathNegatedPropertySet, nil, [:alt, :PathOneInPropertySet, :_PathNegatedPropertySet_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathNegatedPropertySet_1, nil, [:seq, "(", :_PathNegatedPropertySet_2, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathNegatedPropertySet_2, nil, [:opt, :_PathNegatedPropertySet_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathNegatedPropertySet_3, nil, [:seq, :PathOneInPropertySet, :_PathNegatedPropertySet_4]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathNegatedPropertySet_4, nil, [:star, :_PathNegatedPropertySet_5]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathNegatedPropertySet_5, nil, [:seq, "|", :PathOneInPropertySet]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PathOneInPropertySet, nil, [:alt, :iri, "a", :_PathOneInPropertySet_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathOneInPropertySet_1, nil, [:seq, "^", :_PathOneInPropertySet_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PathOneInPropertySet_2, nil, [:alt, :iri, "a"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TriplesNode, nil, [:alt, :Collection, :BlankNodePropertyList]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:BlankNodePropertyList, nil, [:seq, "[", :PropertyListNotEmpty, "]"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TriplesNodePath, nil, [:alt, :CollectionPath, :BlankNodePropertyListPath]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:BlankNodePropertyListPath, nil, [:seq, "[", :PropertyListPathNotEmpty, "]"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Collection, nil, [:seq, "(", :_Collection_1, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Collection_1, nil, [:plus, :GraphNode]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:CollectionPath, nil, [:seq, "(", :_CollectionPath_1, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_CollectionPath_1, nil, [:plus, :GraphNodePath]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:AnnotationPath, nil, [:star, :_AnnotationPath_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AnnotationPath_1, nil, [:alt, :Reifier, :AnnotationBlockPath]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:AnnotationBlockPath, nil, [:seq, "{|", :PropertyListPathNotEmpty, "|}"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Annotation, nil, [:star, :_Annotation_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Annotation_1, nil, [:alt, :Reifier, :AnnotationBlock]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:AnnotationBlock, nil, [:seq, "{|", :PropertyListNotEmpty, "|}"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GraphNode, nil, [:alt, :VarOrTerm, :TriplesNode, :ReifiedTriple]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:GraphNodePath, nil, [:alt, :VarOrTerm, :TriplesNodePath, :ReifiedTriple]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:VarOrTerm, nil, [:alt, :Var, :iri, :RDFLiteral, :NumericLiteral, :BooleanLiteral, :BlankNode, :NIL, :TripleTerm]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ReifiedTriple, nil, [:seq, "<<", :ReifiedTripleSubject, :Verb, :ReifiedTripleObject, :_ReifiedTriple_1, ">>"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ReifiedTriple_1, nil, [:opt, :Reifier]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ReifiedTripleSubject, nil, [:alt, :Var, :iri, :RDFLiteral, :NumericLiteral, :BooleanLiteral, :BlankNode, :ReifiedTriple]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ReifiedTripleObject, nil, [:alt, :Var, :iri, :RDFLiteral, :NumericLiteral, :BooleanLiteral, :BlankNode, :ReifiedTriple, :TripleTerm]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TripleTerm, nil, [:seq, "<<(", :TripleTermSubject, :Verb, :TripleTermObject, ")>>"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TripleTermSubject, nil, [:alt, :Var, :iri, :RDFLiteral, :NumericLiteral, :BooleanLiteral, :BlankNode]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TripleTermObject, nil, [:alt, :Var, :iri, :RDFLiteral, :NumericLiteral, :BooleanLiteral, :BlankNode, :TripleTerm]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TripleTermData, nil, [:seq, "<<(", :TripleTermDataSubject, :_TripleTermData_1, :TripleTermDataObject, ")>>"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_TripleTermData_1, nil, [:alt, :iri, "a"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TripleTermDataSubject, nil, [:alt, :iri, :RDFLiteral, :NumericLiteral, :BooleanLiteral]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:TripleTermDataObject, nil, [:alt, :iri, :RDFLiteral, :NumericLiteral, :BooleanLiteral, :TripleTermData]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:VarOrIri, nil, [:alt, :Var, :iri]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Var, nil, [:alt, :VAR1, :VAR2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Expression, nil, [:seq, :ConditionalOrExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ConditionalOrExpression, nil, [:seq, :ConditionalAndExpression, :_ConditionalOrExpression_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConditionalOrExpression_1, nil, [:star, :_ConditionalOrExpression_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConditionalOrExpression_2, nil, [:seq, "||", :ConditionalAndExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ConditionalAndExpression, nil, [:seq, :ValueLogical, :_ConditionalAndExpression_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConditionalAndExpression_1, nil, [:star, :_ConditionalAndExpression_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ConditionalAndExpression_2, nil, [:seq, "&&", :ValueLogical]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ValueLogical, nil, [:seq, :RelationalExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:RelationalExpression, nil, [:seq, :NumericExpression, :_RelationalExpression_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RelationalExpression_1, nil, [:opt, :_RelationalExpression_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RelationalExpression_2, nil, [:alt, :_RelationalExpression_3, :_RelationalExpression_4, :_RelationalExpression_5, :_RelationalExpression_6, :_RelationalExpression_7, :_RelationalExpression_8, :_RelationalExpression_9, :_RelationalExpression_10]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RelationalExpression_3, nil, [:seq, "=", :NumericExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RelationalExpression_4, nil, [:seq, "!=", :NumericExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RelationalExpression_5, nil, [:seq, "<", :NumericExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RelationalExpression_6, nil, [:seq, ">", :NumericExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RelationalExpression_7, nil, [:seq, "<=", :NumericExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RelationalExpression_8, nil, [:seq, ">=", :NumericExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RelationalExpression_9, nil, [:seq, "IN", :ExpressionList]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RelationalExpression_10, nil, [:seq, "NOT", "IN", :ExpressionList]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:NumericExpression, nil, [:seq, :AdditiveExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:AdditiveExpression, nil, [:seq, :MultiplicativeExpression, :_AdditiveExpression_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AdditiveExpression_1, nil, [:star, :_AdditiveExpression_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AdditiveExpression_2, nil, [:alt, :_AdditiveExpression_3, :_AdditiveExpression_4, :_AdditiveExpression_5]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AdditiveExpression_3, nil, [:seq, "+", :MultiplicativeExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AdditiveExpression_4, nil, [:seq, "-", :MultiplicativeExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AdditiveExpression_5, nil, [:seq, :_AdditiveExpression_6, :_AdditiveExpression_7]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AdditiveExpression_6, nil, [:alt, :NumericLiteralPositive, :NumericLiteralNegative]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AdditiveExpression_7, nil, [:star, :_AdditiveExpression_8]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AdditiveExpression_8, nil, [:alt, :_AdditiveExpression_9, :_AdditiveExpression_10]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AdditiveExpression_9, nil, [:seq, "*", :UnaryExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_AdditiveExpression_10, nil, [:seq, "/", :UnaryExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:MultiplicativeExpression, nil, [:seq, :UnaryExpression, :_MultiplicativeExpression_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_MultiplicativeExpression_1, nil, [:star, :_MultiplicativeExpression_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_MultiplicativeExpression_2, nil, [:alt, :_MultiplicativeExpression_3, :_MultiplicativeExpression_4]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_MultiplicativeExpression_3, nil, [:seq, "*", :UnaryExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_MultiplicativeExpression_4, nil, [:seq, "/", :UnaryExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:UnaryExpression, nil, [:alt, :_UnaryExpression_1, :_UnaryExpression_2, :_UnaryExpression_3, :PrimaryExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_UnaryExpression_1, nil, [:seq, "!", :PrimaryExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_UnaryExpression_2, nil, [:seq, "+", :PrimaryExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_UnaryExpression_3, nil, [:seq, "-", :PrimaryExpression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PrimaryExpression, nil, [:alt, :BrackettedExpression, :BuiltInCall, :iriOrFunction, :RDFLiteral, :NumericLiteral, :BooleanLiteral, :Var, :ExprTripleTerm]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ExprTripleTerm, nil, [:seq, "<<(", :ExprTripleTermSubject, :Verb, :ExprTripleTermObject, ")>>"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ExprTripleTermSubject, nil, [:alt, :iri, :RDFLiteral, :NumericLiteral, :BooleanLiteral, :Var]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ExprTripleTermObject, nil, [:alt, :iri, :RDFLiteral, :NumericLiteral, :BooleanLiteral, :Var, :ExprTripleTerm]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:BrackettedExpression, nil, [:seq, "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:BuiltInCall, nil, [:alt, :Aggregate, :_BuiltInCall_1, :_BuiltInCall_2, :_BuiltInCall_3, :_BuiltInCall_4, :_BuiltInCall_5, :_BuiltInCall_6, :_BuiltInCall_7, :_BuiltInCall_8, :_BuiltInCall_9, :_BuiltInCall_10, :_BuiltInCall_11, :_BuiltInCall_12, :_BuiltInCall_13, :_BuiltInCall_14, :SubstringExpression, :_BuiltInCall_15, :StrReplaceExpression, :_BuiltInCall_16, :_BuiltInCall_17, :_BuiltInCall_18, :_BuiltInCall_19, :_BuiltInCall_20, :_BuiltInCall_21, :_BuiltInCall_22, :_BuiltInCall_23, :_BuiltInCall_24, :_BuiltInCall_25, :_BuiltInCall_26, :_BuiltInCall_27, :_BuiltInCall_28, :_BuiltInCall_29, :_BuiltInCall_30, :_BuiltInCall_31, :_BuiltInCall_32, :_BuiltInCall_33, :_BuiltInCall_34, :_BuiltInCall_35, :_BuiltInCall_36, :_BuiltInCall_37, :_BuiltInCall_38, :_BuiltInCall_39, :_BuiltInCall_40, :_BuiltInCall_41, :_BuiltInCall_42, :_BuiltInCall_43, :_BuiltInCall_44, :_BuiltInCall_45, :_BuiltInCall_46, :_BuiltInCall_47, :_BuiltInCall_48, :_BuiltInCall_49, :_BuiltInCall_50, :_BuiltInCall_51, :RegexExpression, :ExistsFunc, :NotExistsFunc, :_BuiltInCall_52, :_BuiltInCall_53, :_BuiltInCall_54, :_BuiltInCall_55, :_BuiltInCall_56]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_1, nil, [:seq, "STR", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_2, nil, [:seq, "LANG", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_3, nil, [:seq, "LANGMATCHES", "(", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_4, nil, [:seq, "DATATYPE", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_5, nil, [:seq, "BOUND", "(", :Var, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_6, nil, [:seq, "IRI", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_7, nil, [:seq, "URI", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_8, nil, [:seq, "BNODE", :_BuiltInCall_57]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_57, nil, [:alt, :_BuiltInCall_58, :NIL]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_58, nil, [:seq, "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_9, nil, [:seq, "RAND", :NIL]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_10, nil, [:seq, "ABS", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_11, nil, [:seq, "CEIL", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_12, nil, [:seq, "FLOOR", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_13, nil, [:seq, "ROUND", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_14, nil, [:seq, "CONCAT", :ExpressionList]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_15, nil, [:seq, "STRLEN", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_16, nil, [:seq, "UCASE", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_17, nil, [:seq, "LCASE", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_18, nil, [:seq, "ENCODE_FOR_URI", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_19, nil, [:seq, "CONTAINS", "(", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_20, nil, [:seq, "STRSTARTS", "(", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_21, nil, [:seq, "STRENDS", "(", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_22, nil, [:seq, "STRBEFORE", "(", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_23, nil, [:seq, "STRAFTER", "(", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_24, nil, [:seq, "YEAR", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_25, nil, [:seq, "MONTH", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_26, nil, [:seq, "DAY", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_27, nil, [:seq, "HOURS", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_28, nil, [:seq, "MINUTES", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_29, nil, [:seq, "SECONDS", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_30, nil, [:seq, "TIMEZONE", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_31, nil, [:seq, "TZ", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_32, nil, [:seq, "NOW", :NIL]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_33, nil, [:seq, "UUID", :NIL]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_34, nil, [:seq, "STRUUID", :NIL]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_35, nil, [:seq, "MD5", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_36, nil, [:seq, "SHA1", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_37, nil, [:seq, "SHA224", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_38, nil, [:seq, "SHA256", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_39, nil, [:seq, "SHA384", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_40, nil, [:seq, "SHA512", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_41, nil, [:seq, "COALESCE", :ExpressionList]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_42, nil, [:seq, "IF", "(", :Expression, ",", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_43, nil, [:seq, "STRLANG", "(", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_44, nil, [:seq, "STRDT", "(", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_45, nil, [:seq, "sameTerm", "(", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_46, nil, [:seq, "isIRI", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_47, nil, [:seq, "isURI", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_48, nil, [:seq, "isBLANK", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_49, nil, [:seq, "isLITERAL", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_50, nil, [:seq, "isNUMERIC", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_51, nil, [:seq, "ADJUST", "(", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_52, nil, [:seq, "isTRIPLE", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_53, nil, [:seq, "TRIPLE", "(", :Expression, ",", :Expression, ",", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_54, nil, [:seq, "SUBJECT", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_55, nil, [:seq, "PREDICATE", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BuiltInCall_56, nil, [:seq, "OBJECT", "(", :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:RegexExpression, nil, [:seq, "REGEX", "(", :Expression, ",", :Expression, :_RegexExpression_1, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RegexExpression_1, nil, [:opt, :_RegexExpression_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RegexExpression_2, nil, [:seq, ",", :Expression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:SubstringExpression, nil, [:seq, "SUBSTR", "(", :Expression, ",", :Expression, :_SubstringExpression_1, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SubstringExpression_1, nil, [:opt, :_SubstringExpression_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_SubstringExpression_2, nil, [:seq, ",", :Expression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:StrReplaceExpression, nil, [:seq, "REPLACE", "(", :Expression, ",", :Expression, ",", :Expression, :_StrReplaceExpression_1, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_StrReplaceExpression_1, nil, [:opt, :_StrReplaceExpression_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_StrReplaceExpression_2, nil, [:seq, ",", :Expression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ExistsFunc, nil, [:seq, "EXISTS", :GroupGraphPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:NotExistsFunc, nil, [:seq, "NOT", "EXISTS", :GroupGraphPattern]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:Aggregate, nil, [:alt, :_Aggregate_1, :_Aggregate_2, :_Aggregate_3, :_Aggregate_4, :_Aggregate_5, :_Aggregate_6, :_Aggregate_7]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_1, nil, [:seq, "COUNT", "(", :_Aggregate_8, :_Aggregate_9, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_8, nil, [:opt, "DISTINCT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_9, nil, [:alt, "*", :Expression]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_2, nil, [:seq, "SUM", "(", :_Aggregate_10, :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_10, nil, [:opt, "DISTINCT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_3, nil, [:seq, "MIN", "(", :_Aggregate_11, :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_11, nil, [:opt, "DISTINCT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_4, nil, [:seq, "MAX", "(", :_Aggregate_12, :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_12, nil, [:opt, "DISTINCT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_5, nil, [:seq, "AVG", "(", :_Aggregate_13, :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_13, nil, [:opt, "DISTINCT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_6, nil, [:seq, "SAMPLE", "(", :_Aggregate_14, :Expression, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_14, nil, [:opt, "DISTINCT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_7, nil, [:seq, "GROUP_CONCAT", "(", :_Aggregate_15, :Expression, :_Aggregate_16, ")"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_15, nil, [:opt, "DISTINCT"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_16, nil, [:opt, :_Aggregate_17]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_Aggregate_17, nil, [:seq, ";", "SEPARATOR", "=", :String]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:iriOrFunction, nil, [:seq, :iri, :_iriOrFunction_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_iriOrFunction_1, nil, [:opt, :ArgList]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:RDFLiteral, nil, [:seq, :String, :_RDFLiteral_1]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RDFLiteral_1, nil, [:opt, :_RDFLiteral_2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RDFLiteral_2, nil, [:alt, :LANG_DIR, :_RDFLiteral_3]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_RDFLiteral_3, nil, [:seq, "^^", :iri]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:NumericLiteral, nil, [:alt, :NumericLiteralUnsigned, :NumericLiteralPositive, :NumericLiteralNegative]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:NumericLiteralUnsigned, nil, [:alt, :DOUBLE, :DECIMAL, :INTEGER]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:NumericLiteralPositive, nil, [:alt, :DOUBLE_POSITIVE, :DECIMAL_POSITIVE, :INTEGER_POSITIVE]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:NumericLiteralNegative, nil, [:alt, :DOUBLE_NEGATIVE, :DECIMAL_NEGATIVE, :INTEGER_NEGATIVE]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:BooleanLiteral, nil, [:alt, "true", "false"]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:String, nil, [:alt, :STRING_LITERAL_LONG1, :STRING_LITERAL_LONG2, :STRING_LITERAL1, :STRING_LITERAL2]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:iri, nil, [:alt, :IRIREF, :PrefixedName]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PrefixedName, nil, [:alt, :PNAME_LN, :PNAME_NS]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:BlankNode, nil, [:alt, :BLANK_NODE_LABEL, :ANON]).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_terminals, nil, [:seq], kind: :terminals).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:IRIREF, nil, [:seq, "<", :_IRIREF_1, ">"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_IRIREF_1, nil, [:star, :_IRIREF_2], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_IRIREF_2, nil, [:diff, :_IRIREF_3, :_IRIREF_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_IRIREF_3, nil, [:range, "^<>\"{}|^`\\"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_IRIREF_4, nil, [:range, "#x00-#x20"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PNAME_NS, nil, [:seq, :_PNAME_NS_1, ":"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PNAME_NS_1, nil, [:opt, :PN_PREFIX], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PNAME_LN, nil, [:seq, :PNAME_NS, :PN_LOCAL], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:BLANK_NODE_LABEL, nil, [:seq, "_:", :_BLANK_NODE_LABEL_1, :_BLANK_NODE_LABEL_2], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BLANK_NODE_LABEL_1, nil, [:alt, :PN_CHARS_U, :_BLANK_NODE_LABEL_3], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BLANK_NODE_LABEL_3, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BLANK_NODE_LABEL_2, nil, [:opt, :_BLANK_NODE_LABEL_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BLANK_NODE_LABEL_4, nil, [:seq, :_BLANK_NODE_LABEL_5, :PN_CHARS], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BLANK_NODE_LABEL_5, nil, [:star, :_BLANK_NODE_LABEL_6], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_BLANK_NODE_LABEL_6, nil, [:alt, :PN_CHARS, "."], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:VAR1, nil, [:seq, "?", :VARNAME], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:VAR2, nil, [:seq, "$", :VARNAME], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:LANG_DIR, nil, [:seq, "@", :_LANG_DIR_1, :_LANG_DIR_2, :_LANG_DIR_3], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LANG_DIR_1, nil, [:plus, :_LANG_DIR_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LANG_DIR_4, nil, [:range, "a-zA-Z"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LANG_DIR_2, nil, [:star, :_LANG_DIR_5], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LANG_DIR_5, nil, [:seq, "-", :_LANG_DIR_6], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LANG_DIR_6, nil, [:plus, :_LANG_DIR_7], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LANG_DIR_7, nil, [:range, "a-zA-Z0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LANG_DIR_3, nil, [:opt, :_LANG_DIR_8], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LANG_DIR_8, nil, [:seq, "--", :_LANG_DIR_9], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LANG_DIR_9, nil, [:plus, :_LANG_DIR_10], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_LANG_DIR_10, nil, [:range, "a-zA-Z"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:INTEGER, nil, [:plus, :_INTEGER_1], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_INTEGER_1, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DECIMAL, nil, [:seq, :_DECIMAL_1, ".", :_DECIMAL_2], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DECIMAL_1, nil, [:star, :_DECIMAL_3], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DECIMAL_3, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DECIMAL_2, nil, [:plus, :_DECIMAL_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DECIMAL_4, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DOUBLE, nil, [:alt, :_DOUBLE_1, :_DOUBLE_2, :_DOUBLE_3], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_1, nil, [:seq, :_DOUBLE_4, ".", :_DOUBLE_5, :EXPONENT], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_4, nil, [:plus, :_DOUBLE_6], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_6, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_5, nil, [:star, :_DOUBLE_7], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_7, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_2, nil, [:seq, ".", :_DOUBLE_8, :EXPONENT], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_8, nil, [:plus, :_DOUBLE_9], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_9, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_3, nil, [:seq, :_DOUBLE_10, :EXPONENT], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_10, nil, [:plus, :_DOUBLE_11], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_DOUBLE_11, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:INTEGER_POSITIVE, nil, [:seq, "+", :INTEGER], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DECIMAL_POSITIVE, nil, [:seq, "+", :DECIMAL], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DOUBLE_POSITIVE, nil, [:seq, "+", :DOUBLE], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:INTEGER_NEGATIVE, nil, [:seq, "-", :INTEGER], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DECIMAL_NEGATIVE, nil, [:seq, "-", :DECIMAL], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:DOUBLE_NEGATIVE, nil, [:seq, "-", :DOUBLE], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:EXPONENT, nil, [:seq, :_EXPONENT_1, :_EXPONENT_2, :_EXPONENT_3], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_EXPONENT_1, nil, [:range, "eE"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_EXPONENT_2, nil, [:opt, :_EXPONENT_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_EXPONENT_4, nil, [:range, "+-"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_EXPONENT_3, nil, [:plus, :_EXPONENT_5], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_EXPONENT_5, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:STRING_LITERAL1, nil, [:seq, "'", :_STRING_LITERAL1_1, "'"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL1_1, nil, [:star, :_STRING_LITERAL1_2], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL1_2, nil, [:alt, :_STRING_LITERAL1_3, :ECHAR], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL1_3, nil, [:range, "^#x27#x5C#xA#xD"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:STRING_LITERAL2, nil, [:seq, "\"", :_STRING_LITERAL2_1, "\""], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL2_1, nil, [:star, :_STRING_LITERAL2_2], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL2_2, nil, [:alt, :_STRING_LITERAL2_3, :ECHAR], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL2_3, nil, [:range, "^#x22#x5C#xA#xD"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:STRING_LITERAL_LONG1, nil, [:seq, "'''", :_STRING_LITERAL_LONG1_1, "'''"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG1_1, nil, [:star, :_STRING_LITERAL_LONG1_2], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG1_2, nil, [:seq, :_STRING_LITERAL_LONG1_3, :_STRING_LITERAL_LONG1_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG1_3, nil, [:opt, :_STRING_LITERAL_LONG1_5], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG1_5, nil, [:alt, "'", "''"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG1_4, nil, [:alt, :_STRING_LITERAL_LONG1_6, :ECHAR], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG1_6, nil, [:range, "^'\\"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:STRING_LITERAL_LONG2, nil, [:seq, "\"\"\"", :_STRING_LITERAL_LONG2_1, "\"\"\""], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG2_1, nil, [:star, :_STRING_LITERAL_LONG2_2], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG2_2, nil, [:seq, :_STRING_LITERAL_LONG2_3, :_STRING_LITERAL_LONG2_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG2_3, nil, [:opt, :_STRING_LITERAL_LONG2_5], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG2_5, nil, [:alt, "\"", "\"\""], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG2_4, nil, [:alt, :_STRING_LITERAL_LONG2_6, :ECHAR], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_STRING_LITERAL_LONG2_6, nil, [:range, "^\"\\"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ECHAR, nil, [:seq, "\\", :_ECHAR_1], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ECHAR_1, nil, [:range, "tbnrf\\\"'"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:NIL, nil, [:seq, "(", :_NIL_1, ")"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_NIL_1, nil, [:star, :WS], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:WS, nil, [:alt, :_WS_1, :_WS_2, :_WS_3, :_WS_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_WS_1, nil, [:hex, "#x20"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_WS_2, nil, [:hex, "#x9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_WS_3, nil, [:hex, "#xD"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_WS_4, nil, [:hex, "#xA"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:ANON, nil, [:seq, "[", :_ANON_1, "]"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_ANON_1, nil, [:star, :WS], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PN_CHARS_BASE, nil, [:alt, :_PN_CHARS_BASE_1, :_PN_CHARS_BASE_2, :_PN_CHARS_BASE_3, :_PN_CHARS_BASE_4, :_PN_CHARS_BASE_5, :_PN_CHARS_BASE_6, :_PN_CHARS_BASE_7, :_PN_CHARS_BASE_8, :_PN_CHARS_BASE_9, :_PN_CHARS_BASE_10, :_PN_CHARS_BASE_11, :_PN_CHARS_BASE_12, :_PN_CHARS_BASE_13, :_PN_CHARS_BASE_14], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_1, nil, [:range, "A-Z"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_2, nil, [:range, "a-z"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_3, nil, [:range, "#x00C0-#x00D6"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_4, nil, [:range, "#x00D8-#x00F6"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_5, nil, [:range, "#x00F8-#x02FF"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_6, nil, [:range, "#x0370-#x037D"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_7, nil, [:range, "#x037F-#x1FFF"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_8, nil, [:range, "#x200C-#x200D"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_9, nil, [:range, "#x2070-#x218F"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_10, nil, [:range, "#x2C00-#x2FEF"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_11, nil, [:range, "#x3001-#xD7FF"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_12, nil, [:range, "#xF900-#xFDCF"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_13, nil, [:range, "#xFDF0-#xFFFD"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_BASE_14, nil, [:range, "#x10000-#xEFFFF"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PN_CHARS_U, nil, [:alt, :PN_CHARS_BASE, "_"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:VARNAME, nil, [:seq, :_VARNAME_1, :_VARNAME_2], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_VARNAME_1, nil, [:alt, :PN_CHARS_U, :_VARNAME_3], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_VARNAME_3, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_VARNAME_2, nil, [:star, :_VARNAME_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_VARNAME_4, nil, [:alt, :PN_CHARS_U, :_VARNAME_5, :_VARNAME_6, :_VARNAME_7, :_VARNAME_8], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_VARNAME_5, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_VARNAME_6, nil, [:hex, "#x00B7"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_VARNAME_7, nil, [:range, "#x0300-#x036F"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_VARNAME_8, nil, [:range, "#x203F-#x2040"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PN_CHARS, nil, [:alt, :PN_CHARS_U, "-", :_PN_CHARS_1, :_PN_CHARS_2, :_PN_CHARS_3, :_PN_CHARS_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_1, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_2, nil, [:hex, "#x00B7"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_3, nil, [:range, "#x0300-#x036F"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_CHARS_4, nil, [:range, "#x203F-#x2040"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PN_PREFIX, nil, [:seq, :PN_CHARS_BASE, :_PN_PREFIX_1], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_PREFIX_1, nil, [:opt, :_PN_PREFIX_2], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_PREFIX_2, nil, [:seq, :_PN_PREFIX_3, :PN_CHARS], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_PREFIX_3, nil, [:star, :_PN_PREFIX_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_PREFIX_4, nil, [:alt, :PN_CHARS, "."], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PN_LOCAL, nil, [:seq, :_PN_LOCAL_1, :_PN_LOCAL_2], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_LOCAL_1, nil, [:alt, :PN_CHARS_U, ":", :_PN_LOCAL_3, :PLX], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_LOCAL_3, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_LOCAL_2, nil, [:opt, :_PN_LOCAL_4], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_LOCAL_4, nil, [:seq, :_PN_LOCAL_5, :_PN_LOCAL_6], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_LOCAL_5, nil, [:star, :_PN_LOCAL_7], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_LOCAL_7, nil, [:alt, :PN_CHARS, ".", ":", :PLX], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_LOCAL_6, nil, [:alt, :PN_CHARS, ":", :PLX], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PLX, nil, [:alt, :PERCENT, :PN_LOCAL_ESC], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PERCENT, nil, [:seq, "%", :HEX, :HEX], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:HEX, nil, [:alt, :_HEX_1, :_HEX_2, :_HEX_3], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_HEX_1, nil, [:range, "0-9"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_HEX_2, nil, [:range, "A-F"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_HEX_3, nil, [:range, "a-f"], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:PN_LOCAL_ESC, nil, [:seq, "\\", :_PN_LOCAL_ESC_1], kind: :terminal).extend(EBNF::PEG::Rule),
  EBNF::Rule.new(:_PN_LOCAL_ESC_1, nil, [:alt, "_", "~", ".", "-", "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "=", "/", "?", "#", "@", "%"], kind: :terminal).extend(EBNF::PEG::Rule),
]