summaryrefslogtreecommitdiff
path: root/includes/external/school/node_modules/graphql/language/experimentalOnlineParser/grammar.mjs
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2023-02-23 19:34:56 +0100
committerMinteck <contact@minteck.org>2023-02-23 19:34:56 +0100
commit3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 (patch)
tree75be5fba4368472fb11c8015aee026b2b9a71888 /includes/external/school/node_modules/graphql/language/experimentalOnlineParser/grammar.mjs
parent8cc1f13c17fa2fb5a4410542d39e650e02945634 (diff)
downloadpluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.gz
pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.bz2
pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.zip
Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated)
Diffstat (limited to 'includes/external/school/node_modules/graphql/language/experimentalOnlineParser/grammar.mjs')
-rw-r--r--includes/external/school/node_modules/graphql/language/experimentalOnlineParser/grammar.mjs980
1 files changed, 980 insertions, 0 deletions
diff --git a/includes/external/school/node_modules/graphql/language/experimentalOnlineParser/grammar.mjs b/includes/external/school/node_modules/graphql/language/experimentalOnlineParser/grammar.mjs
new file mode 100644
index 0000000..a31907e
--- /dev/null
+++ b/includes/external/school/node_modules/graphql/language/experimentalOnlineParser/grammar.mjs
@@ -0,0 +1,980 @@
+var grammar = {
+ Name: {
+ token: 'Name'
+ },
+ String: {
+ token: 'String'
+ },
+ BlockString: {
+ token: 'BlockString'
+ },
+ Document: {
+ listOfType: 'Definition'
+ },
+ Definition: {
+ peek: [{
+ ifCondition: {
+ token: 'Name',
+ oneOf: ['query', 'mutation', 'subscription']
+ },
+ expect: 'OperationDefinition'
+ }, {
+ ifCondition: {
+ token: 'Name',
+ ofValue: 'fragment'
+ },
+ expect: 'FragmentDefinition'
+ }, {
+ ifCondition: {
+ token: 'Name',
+ oneOf: ['schema', 'scalar', 'type', 'interface', 'union', 'enum', 'input', 'directive']
+ },
+ expect: 'TypeSystemDefinition'
+ }, {
+ ifCondition: {
+ token: 'Name',
+ ofValue: 'extend'
+ },
+ expect: 'TypeSystemExtension'
+ }, {
+ ifCondition: {
+ token: '{'
+ },
+ expect: 'OperationDefinition'
+ }, {
+ ifCondition: 'String',
+ expect: 'TypeSystemDefinition'
+ }, {
+ ifCondition: 'BlockString',
+ expect: 'TypeSystemDefinition'
+ }]
+ },
+ OperationDefinition: {
+ peek: [{
+ ifCondition: {
+ token: '{'
+ },
+ expect: 'SelectionSet'
+ }, {
+ ifCondition: {
+ token: 'Name',
+ oneOf: ['query', 'mutation', 'subscription']
+ },
+ expect: ['OperationType', {
+ token: 'Name',
+ optional: true,
+ tokenName: 'OperationName',
+ definitionName: true
+ }, {
+ ofType: 'VariableDefinitions',
+ optional: true
+ }, {
+ ofType: 'Directives',
+ optional: true
+ }, 'SelectionSet']
+ }]
+ },
+ OperationType: {
+ ofType: 'OperationTypeName'
+ },
+ OperationTypeName: {
+ token: 'Name',
+ oneOf: ['query', 'mutation', 'subscription'],
+ definitionName: true
+ },
+ SelectionSet: [{
+ token: '{'
+ }, {
+ listOfType: 'Selection'
+ }, {
+ token: '}'
+ }],
+ Selection: {
+ peek: [{
+ ifCondition: {
+ token: '...'
+ },
+ expect: 'Fragment'
+ }, {
+ ifCondition: {
+ token: 'Name'
+ },
+ expect: 'Field'
+ }]
+ },
+ Field: [{
+ ofType: 'Alias',
+ optional: true,
+ eatNextOnFail: true,
+ definitionName: true
+ }, {
+ token: 'Name',
+ tokenName: 'FieldName',
+ definitionName: true
+ }, {
+ ofType: 'Arguments',
+ optional: true
+ }, {
+ ofType: 'Directives',
+ optional: true
+ }, {
+ ofType: 'SelectionSet',
+ optional: true
+ }],
+ Arguments: [{
+ token: '('
+ }, {
+ listOfType: 'Argument'
+ }, {
+ token: ')'
+ }],
+ Argument: [{
+ token: 'Name',
+ tokenName: 'ArgumentName',
+ definitionName: true
+ }, {
+ token: ':'
+ }, 'Value'],
+ Alias: [{
+ token: 'Name',
+ tokenName: 'AliasName',
+ definitionName: true
+ }, {
+ token: ':'
+ }],
+ Fragment: [{
+ token: '...'
+ }, {
+ peek: [{
+ ifCondition: 'FragmentName',
+ expect: 'FragmentSpread'
+ }, {
+ ifCondition: {
+ token: 'Name',
+ ofValue: 'on'
+ },
+ expect: 'InlineFragment'
+ }, {
+ ifCondition: {
+ token: '@'
+ },
+ expect: 'InlineFragment'
+ }, {
+ ifCondition: {
+ token: '{'
+ },
+ expect: 'InlineFragment'
+ }]
+ }],
+ FragmentSpread: ['FragmentName', {
+ ofType: 'Directives',
+ optional: true
+ }],
+ FragmentDefinition: [{
+ token: 'Name',
+ ofValue: 'fragment',
+ tokenName: 'FragmentDefinitionKeyword'
+ }, 'FragmentName', 'TypeCondition', {
+ ofType: 'Directives',
+ optional: true
+ }, 'SelectionSet'],
+ FragmentName: {
+ token: 'Name',
+ butNot: {
+ token: 'Name',
+ ofValue: 'on'
+ },
+ definitionName: true
+ },
+ TypeCondition: [{
+ token: 'Name',
+ ofValue: 'on',
+ tokenName: 'OnKeyword'
+ }, 'TypeName'],
+ InlineFragment: [{
+ ofType: 'TypeCondition',
+ optional: true
+ }, {
+ ofType: 'Directives',
+ optional: true
+ }, 'SelectionSet'],
+ Value: {
+ peek: [{
+ ifCondition: {
+ token: '$'
+ },
+ expect: 'Variable'
+ }, {
+ ifCondition: 'IntValue',
+ expect: {
+ ofType: 'IntValue',
+ tokenName: 'NumberValue'
+ }
+ }, {
+ ifCondition: 'FloatValue',
+ expect: {
+ ofType: 'FloatValue',
+ tokenName: 'NumberValue'
+ }
+ }, {
+ ifCondition: 'BooleanValue',
+ expect: {
+ ofType: 'BooleanValue',
+ tokenName: 'BooleanValue'
+ }
+ }, {
+ ifCondition: 'EnumValue',
+ expect: {
+ ofType: 'EnumValue',
+ tokenName: 'EnumValue'
+ }
+ }, {
+ ifCondition: 'String',
+ expect: {
+ ofType: 'String',
+ tokenName: 'StringValue'
+ }
+ }, {
+ ifCondition: 'BlockString',
+ expect: {
+ ofType: 'BlockString',
+ tokenName: 'StringValue'
+ }
+ }, {
+ ifCondition: 'NullValue',
+ expect: {
+ ofType: 'NullValue',
+ tokenName: 'NullValue'
+ }
+ }, {
+ ifCondition: {
+ token: '['
+ },
+ expect: 'ListValue'
+ }, {
+ ifCondition: {
+ token: '{'
+ },
+ expect: 'ObjectValue'
+ }]
+ },
+ ConstValue: {
+ peek: [{
+ ifCondition: 'IntValue',
+ expect: {
+ ofType: 'IntValue'
+ }
+ }, {
+ ifCondition: 'FloatValue',
+ expect: {
+ ofType: 'FloatValue'
+ }
+ }, {
+ ifCondition: 'BooleanValue',
+ expect: 'BooleanValue'
+ }, {
+ ifCondition: 'EnumValue',
+ expect: 'EnumValue'
+ }, {
+ ifCondition: 'String',
+ expect: {
+ ofType: 'String',
+ tokenName: 'StringValue'
+ }
+ }, {
+ ifCondition: 'BlockString',
+ expect: {
+ token: 'BlockString',
+ tokenName: 'StringValue'
+ }
+ }, {
+ ifCondition: 'NullValue',
+ expect: 'NullValue'
+ }, {
+ ifCondition: {
+ token: '['
+ },
+ expect: 'ConstListValue'
+ }, {
+ ifCondition: {
+ token: '{'
+ },
+ expect: 'ObjectValue'
+ }]
+ },
+ IntValue: {
+ token: 'Int'
+ },
+ FloatValue: {
+ token: 'Float'
+ },
+ StringValue: {
+ peek: [{
+ ifCondition: {
+ token: 'String'
+ },
+ expect: {
+ token: 'String',
+ tokenName: 'StringValue'
+ }
+ }, {
+ ifCondition: {
+ token: 'BlockString'
+ },
+ expect: {
+ token: 'BlockString',
+ tokenName: 'StringValue'
+ }
+ }]
+ },
+ BooleanValue: {
+ token: 'Name',
+ oneOf: ['true', 'false'],
+ tokenName: 'BooleanValue'
+ },
+ NullValue: {
+ token: 'Name',
+ ofValue: 'null',
+ tokenName: 'NullValue'
+ },
+ EnumValue: {
+ token: 'Name',
+ butNot: {
+ token: 'Name',
+ oneOf: ['null', 'true', 'false']
+ },
+ tokenName: 'EnumValue'
+ },
+ ListValue: [{
+ token: '['
+ }, {
+ listOfType: 'Value',
+ optional: true
+ }, {
+ token: ']'
+ }],
+ ConstListValue: [{
+ token: '['
+ }, {
+ listOfType: 'ConstValue',
+ optional: true
+ }, {
+ token: ']'
+ }],
+ ObjectValue: [{
+ token: '{'
+ }, {
+ listOfType: 'ObjectField',
+ optional: true
+ }, {
+ token: '}'
+ }],
+ ObjectField: [{
+ token: 'Name',
+ tokenName: 'ObjectFieldName'
+ }, {
+ token: ':'
+ }, {
+ ofType: 'ConstValue'
+ }],
+ Variable: [{
+ token: '$',
+ tokenName: 'VariableName'
+ }, {
+ token: 'Name',
+ tokenName: 'VariableName'
+ }],
+ VariableDefinitions: [{
+ token: '('
+ }, {
+ listOfType: 'VariableDefinition'
+ }, {
+ token: ')'
+ }],
+ VariableDefinition: ['Variable', {
+ token: ':'
+ }, 'Type', {
+ ofType: 'DefaultValue',
+ optional: true
+ }],
+ DefaultValue: [{
+ token: '='
+ }, 'ConstValue'],
+ TypeName: {
+ token: 'Name',
+ tokenName: 'TypeName',
+ typeName: true
+ },
+ Type: {
+ peek: [{
+ ifCondition: {
+ token: 'Name'
+ },
+ expect: ['TypeName', {
+ token: '!',
+ optional: true
+ }]
+ }, {
+ ifCondition: {
+ token: '['
+ },
+ expect: 'ListType'
+ }]
+ },
+ ListType: [{
+ token: '['
+ }, {
+ listOfType: 'Type'
+ }, {
+ token: ']'
+ }, {
+ token: '!',
+ optional: true
+ }],
+ Directives: {
+ listOfType: 'Directive'
+ },
+ Directive: [{
+ token: '@',
+ tokenName: 'DirectiveName'
+ }, {
+ token: 'Name',
+ tokenName: 'DirectiveName'
+ }, {
+ ofType: 'Arguments',
+ optional: true
+ }],
+ TypeSystemDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, {
+ peek: [{
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'schema'
+ },
+ expect: 'SchemaDefinition'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'scalar'
+ },
+ expect: 'ScalarTypeDefinition'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'type'
+ },
+ expect: 'ObjectTypeDefinition'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'interface'
+ },
+ expect: 'InterfaceTypeDefinition'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'union'
+ },
+ expect: 'UnionTypeDefinition'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'enum'
+ },
+ expect: 'EnumTypeDefinition'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'input'
+ },
+ expect: 'InputObjectTypeDefinition'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'directive'
+ },
+ expect: 'DirectiveDefinition'
+ }]
+ }],
+ TypeSystemExtension: {
+ peek: [{
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'schema'
+ },
+ expect: 'SchemaExtension'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'scalar'
+ },
+ expect: 'ScalarTypeExtension'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'type'
+ },
+ expect: 'ObjectTypeExtension'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'interface'
+ },
+ expect: 'InterfaceTypeExtension'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'union'
+ },
+ expect: 'UnionTypeExtension'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'enum'
+ },
+ expect: 'EnumTypeExtension'
+ }, {
+ ifCondition: {
+ target: 'Name',
+ ofValue: 'input'
+ },
+ expect: 'InputObjectTypeExtension'
+ }]
+ },
+ SchemaDefinition: [{
+ token: 'Name',
+ ofValue: 'schema',
+ tokenName: 'SchemaDefinitionKeyword'
+ }, {
+ ofType: 'Directives',
+ optional: true
+ }, {
+ token: '{'
+ }, {
+ listOfType: 'RootOperationTypeDefinition'
+ }, {
+ token: '}'
+ }],
+ RootOperationTypeDefinition: ['OperationType', {
+ token: ':'
+ }, {
+ token: 'Name',
+ tokenName: 'OperationTypeDefinitionName'
+ }],
+ SchemaExtension: [{
+ token: 'Name',
+ ofValue: 'extend'
+ }, {
+ token: 'Name',
+ ofValue: 'schema'
+ }, 'Name', {
+ peek: [{
+ ifCondition: {
+ token: '@'
+ },
+ expect: ['Directives', {
+ ofType: [{
+ token: '{'
+ }, {
+ listOfType: 'RootOperationTypeDefinition'
+ }, {
+ token: '}'
+ }],
+ optional: true
+ }]
+ }, {
+ ifCondition: {
+ token: '{'
+ },
+ expect: [{
+ token: '{'
+ }, {
+ listOfType: 'RootOperationTypeDefinition'
+ }, {
+ token: '}'
+ }]
+ }]
+ }],
+ Description: 'StringValue',
+ ScalarTypeDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, {
+ token: 'Name',
+ ofValue: 'scalar',
+ tokenName: 'ScalarDefinitionKeyword'
+ }, 'TypeName', {
+ ofType: 'Directives',
+ optional: true
+ }],
+ ScalarTypeExtension: [{
+ token: 'Name',
+ ofValue: 'extend',
+ tokenName: 'ExtendDefinitionKeyword'
+ }, {
+ token: 'Name',
+ ofValue: 'scalar',
+ tokenName: 'ScalarDefinitionKeyword'
+ }, 'TypeName', 'Directives'],
+ ObjectTypeDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, {
+ token: 'Name',
+ ofValue: 'type',
+ tokenName: 'TypeDefinitionKeyword'
+ }, 'TypeName', {
+ ofType: 'ImplementsInterfaces',
+ optional: true
+ }, {
+ ofType: 'Directives',
+ optional: true
+ }, {
+ ofType: 'FieldsDefinition',
+ optional: true
+ }],
+ ImplementsInterfaces: [{
+ token: 'Name',
+ ofValue: 'implements',
+ tokenName: 'ImplementsKeyword'
+ }, {
+ token: '&',
+ optional: true
+ }, 'TypeName', {
+ listOfType: 'ImplementsAdditionalInterfaceName',
+ optional: true
+ }],
+ ImplementsAdditionalInterfaceName: [{
+ token: '&'
+ }, 'TypeName'],
+ FieldsDefinition: [{
+ token: '{'
+ }, {
+ listOfType: 'FieldDefinition'
+ }, {
+ token: '}'
+ }],
+ FieldDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, {
+ token: 'Name',
+ tokenName: 'AliasName',
+ definitionName: true
+ }, {
+ ofType: 'ArgumentsDefinition',
+ optional: true
+ }, {
+ token: ':'
+ }, 'Type', {
+ ofType: 'Directives',
+ optional: true
+ }],
+ ArgumentsDefinition: [{
+ token: '('
+ }, {
+ listOfType: 'InputValueDefinition'
+ }, {
+ token: ')'
+ }],
+ InputValueDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, {
+ token: 'Name',
+ tokenName: 'ArgumentName'
+ }, {
+ token: ':'
+ }, 'Type', {
+ ofType: 'DefaultValue',
+ optional: true
+ }, {
+ ofType: 'Directives',
+ optional: true
+ }],
+ ObjectTypeExtension: [{
+ token: 'Name',
+ ofValue: 'extend',
+ tokenName: 'ExtendDefinitionKeyword'
+ }, {
+ token: 'Name',
+ ofValue: 'type',
+ tokenName: 'TypeDefinitionKeyword'
+ }, 'TypeName', {
+ peek: [{
+ ifCondition: {
+ token: 'Name',
+ ofValue: 'interface'
+ },
+ expect: ['ImplementsInterfaces', {
+ peek: [{
+ ifCondition: {
+ token: '@'
+ },
+ expect: ['Directives', {
+ ofType: 'FieldsDefinition',
+ optional: true
+ }]
+ }, {
+ ifCondition: {
+ token: '{'
+ },
+ expect: 'FieldsDefinition'
+ }],
+ optional: true
+ }]
+ }, {
+ ifCondition: {
+ token: '@'
+ },
+ expect: ['Directives', {
+ ofType: 'FieldsDefinition',
+ optional: true
+ }]
+ }, {
+ ifCondition: {
+ token: '{'
+ },
+ expect: 'FieldsDefinition'
+ }]
+ }],
+ InterfaceTypeDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, {
+ token: 'Name',
+ ofValue: 'interface',
+ tokenName: 'InterfaceDefinitionKeyword'
+ }, 'TypeName', {
+ ofType: 'Directives',
+ optional: true
+ }, {
+ ofType: 'FieldsDefinition',
+ optional: true
+ }],
+ InterfaceTypeExtension: [{
+ token: 'Name',
+ ofValue: 'extend',
+ tokenName: 'ExtendDefinitionKeyword'
+ }, {
+ token: 'Name',
+ ofValue: 'interface',
+ tokenName: 'InterfaceDefinitionKeyword'
+ }, 'TypeName', {
+ peek: [{
+ ifCondition: {
+ token: '@'
+ },
+ expect: ['Directives', {
+ ofType: 'FieldsDefinition',
+ optional: true
+ }]
+ }, {
+ ifCondition: {
+ token: '{'
+ },
+ expect: 'FieldsDefinition'
+ }]
+ }],
+ UnionTypeDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, {
+ token: 'Name',
+ ofValue: 'union',
+ tokenName: 'UnionDefinitionKeyword'
+ }, 'TypeName', {
+ ofType: 'Directives',
+ optional: true
+ }, {
+ ofType: 'UnionMemberTypes',
+ optional: true
+ }],
+ UnionMemberTypes: [{
+ token: '='
+ }, {
+ token: '|',
+ optional: true
+ }, 'Name', {
+ listOfType: 'UnionMemberAdditionalTypeName',
+ optional: true
+ }],
+ UnionMemberAdditionalTypeName: [{
+ token: '|'
+ }, 'TypeName'],
+ UnionTypeExtension: [{
+ token: 'Name',
+ ofValue: 'extend',
+ tokenName: 'ExtendDefinitionKeyword'
+ }, {
+ token: 'Name',
+ ofValue: 'union',
+ tokenName: 'UnionDefinitionKeyword'
+ }, 'TypeName', {
+ peek: [{
+ ifCondition: {
+ token: '@'
+ },
+ expect: ['Directives', {
+ ofType: 'UnionMemberTypes',
+ optional: true
+ }]
+ }, {
+ ifCondition: {
+ token: '='
+ },
+ expect: 'UnionMemberTypes'
+ }]
+ }],
+ EnumTypeDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, {
+ token: 'Name',
+ ofValue: 'enum',
+ tokenName: 'EnumDefinitionKeyword'
+ }, 'TypeName', {
+ ofType: 'Directives',
+ optional: true
+ }, {
+ ofType: 'EnumValuesDefinition',
+ optional: true
+ }],
+ EnumValuesDefinition: [{
+ token: '{'
+ }, {
+ listOfType: 'EnumValueDefinition'
+ }, {
+ token: '}'
+ }],
+ EnumValueDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, 'EnumValue', {
+ ofType: 'Directives',
+ optional: true
+ }],
+ EnumTypeExtension: [{
+ token: 'Name',
+ ofValue: 'extend',
+ tokenName: 'ExtendDefinitionKeyword'
+ }, {
+ token: 'Name',
+ ofValue: 'enum',
+ tokenName: 'EnumDefinitionKeyword'
+ }, 'TypeName', {
+ peek: [{
+ ifCondition: {
+ token: '@'
+ },
+ expect: ['Directives', {
+ ofType: 'EnumValuesDefinition',
+ optional: true
+ }]
+ }, {
+ ifCondition: {
+ token: '{'
+ },
+ expect: 'EnumValuesDefinition'
+ }]
+ }],
+ InputObjectTypeDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, {
+ token: 'Name',
+ ofValue: 'input',
+ tokenName: 'InputDefinitionKeyword'
+ }, 'TypeName', {
+ ofType: 'Directives',
+ optional: true
+ }, {
+ ofType: 'InputFieldsDefinition',
+ optional: true
+ }],
+ InputFieldsDefinition: [{
+ token: '{'
+ }, {
+ listOfType: 'InputValueDefinition'
+ }, {
+ token: '}'
+ }],
+ InputObjectTypeExtension: [{
+ token: 'Name',
+ ofValue: 'extend',
+ tokenName: 'ExtendDefinitionKeyword'
+ }, {
+ token: 'Name',
+ ofValue: 'input',
+ tokenName: 'InputDefinitionKeyword'
+ }, 'TypeName', {
+ peek: [{
+ ifCondition: {
+ token: '@'
+ },
+ expect: ['Directives', {
+ ofType: 'InputFieldsDefinition',
+ optional: true
+ }]
+ }, {
+ ifCondition: {
+ token: '{'
+ },
+ expect: 'InputFieldsDefinition'
+ }]
+ }],
+ DirectiveDefinition: [{
+ ofType: 'Description',
+ optional: true
+ }, {
+ token: 'Name',
+ ofValue: 'directive',
+ tokenName: 'DirectiveDefinitionKeyword'
+ }, {
+ token: '@',
+ tokenName: 'DirectiveName'
+ }, {
+ token: 'Name',
+ tokenName: 'DirectiveName'
+ }, {
+ ofType: 'ArgumentsDefinition',
+ optional: true
+ }, {
+ token: 'Name',
+ ofValue: 'on',
+ tokenName: 'OnKeyword'
+ }, 'DirectiveLocations'],
+ DirectiveLocations: [{
+ token: '|',
+ optional: true
+ }, 'DirectiveLocation', {
+ listOfType: 'DirectiveLocationAdditionalName',
+ optional: true
+ }],
+ DirectiveLocationAdditionalName: [{
+ token: '|'
+ }, 'DirectiveLocation'],
+ DirectiveLocation: {
+ peek: [{
+ ifCondition: 'ExecutableDirectiveLocation',
+ expect: 'ExecutableDirectiveLocation'
+ }, {
+ ifCondition: 'TypeSystemDirectiveLocation',
+ expect: 'TypeSystemDirectiveLocation'
+ }]
+ },
+ ExecutableDirectiveLocation: {
+ token: 'Name',
+ oneOf: ['QUERY', 'MUTATION', 'SUBSCRIPTION', 'FIELD', 'FRAGMENT_DEFINITION', 'FRAGMENT_SPREAD', 'INLINE_FRAGMENT'],
+ tokenName: 'EnumValue'
+ },
+ TypeSystemDirectiveLocation: {
+ token: 'Name',
+ oneOf: ['SCHEMA', 'SCALAR', 'OBJECT', 'FIELD_DEFINITION', 'ARGUMENT_DEFINITION', 'INTERFACE', 'UNION', 'ENUM', 'ENUM_VALUE', 'INPUT_OBJECT', 'INPUT_FIELD_DEFINITION'],
+ tokenName: 'EnumValue'
+ } // FIXME: enforce proper typing
+
+};
+export default grammar;