syntax.grammar (hoppscotch-2.2.1) | : | syntax.grammar (hoppscotch-3.0.0) | ||
---|---|---|---|---|
skipping to change at line 36 | skipping to change at line 36 | |||
SchemaDefinition | | SchemaDefinition | | |||
TypeDefinition | | TypeDefinition | | |||
DirectiveDefinition | DirectiveDefinition | |||
} | } | |||
TypeSystemExtension { | TypeSystemExtension { | |||
SchemaExtension | | SchemaExtension | | |||
TypeExtension | TypeExtension | |||
} | } | |||
SchemaKeyword { | ||||
@specialize<Name, "schema"> | ||||
} | ||||
SchemaDefinition { | SchemaDefinition { | |||
Description? @specialize<Name, "schema"> Directives? RootTypeDef | Description? SchemaKeyword Directives? RootTypeDef | |||
} | } | |||
RootTypeDef { | RootTypeDef { | |||
"{" RootOperationTypeDefinition+ "}" | "{" RootOperationTypeDefinition+ "}" | |||
} | } | |||
ExtendKeyword { | ||||
@specialize<Name, "extend"> | ||||
} | ||||
SchemaExtension { | SchemaExtension { | |||
@specialize<Name, "extend"> @specialize<Name, "schema"> Directives? RootTypeDe f | ExtendKeyword SchemaKeyword Directives? RootTypeDef | |||
} | } | |||
TypeExtension { | TypeExtension { | |||
ScalarTypeExtension | | ScalarTypeExtension | | |||
ObjectTypeExtension | | ObjectTypeExtension | | |||
InterfaceTypeExtension | | InterfaceTypeExtension | | |||
UnionTypeExtension | | UnionTypeExtension | | |||
EnumTypeExtension | | EnumTypeExtension | | |||
InputObjectTypeExtension | InputObjectTypeExtension | |||
} | } | |||
ScalarKeyword { | ||||
@specialize<Name, "scalar"> | ||||
} | ||||
ScalarTypeExtension { | ScalarTypeExtension { | |||
@specialize<Name, "extend"> @specialize<Name, "scalar"> Name Directives | ExtendKeyword ScalarKeyword Name Directives | |||
} | } | |||
ObjectTypeExtension /* precedence: right 0 */ { | ObjectTypeExtension /* precedence: right 0 */ { | |||
@specialize<Name, "extend"> @specialize<Name, "type"> Name ImplementsInterface | ExtendKeyword TypeKeyword Name ImplementsInterfaces? Directives? !typeDef Fiel | |||
s? Directives? !typeDef FieldsDefinition | | dsDefinition | | |||
@specialize<Name, "extend"> @specialize<Name, "type"> Name ImplementsInterface | ExtendKeyword TypeKeyword Name ImplementsInterfaces? Directives? | |||
s? Directives? | } | |||
InterfaceKeyword { | ||||
@specialize<Name, "interface"> | ||||
} | } | |||
InterfaceTypeExtension /* precedence: right 0 */ { | InterfaceTypeExtension /* precedence: right 0 */ { | |||
@specialize<Name, "extend"> @specialize<Name, "interface"> Name ImplementsInte | ExtendKeyword InterfaceKeyword Name ImplementsInterfaces? Directives? FieldsDe | |||
rfaces? Directives? FieldsDefinition | | finition | | |||
@specialize<Name, "extend"> @specialize<Name, "interface"> Name ImplementsInte | ExtendKeyword InterfaceKeyword Name ImplementsInterfaces? Directives? | |||
rfaces? Directives? | } | |||
UnionKeyword { | ||||
@specialize<Name, "union"> | ||||
} | } | |||
UnionTypeExtension /* precedence: right 0 */ { | UnionTypeExtension /* precedence: right 0 */ { | |||
@specialize<Name, "extend"> @specialize<Name, "union"> Name Directives? UnionM | ExtendKeyword UnionKeyword Name Directives? UnionMemberTypes | | |||
emberTypes | | ExtendKeyword UnionKeyword Name Directives? | |||
@specialize<Name, "extend"> @specialize<Name, "union"> Name Directives? | } | |||
EnumKeyword { | ||||
@specialize<Name, "enum"> | ||||
} | } | |||
EnumTypeExtension /* precedence: right 0 */ { | EnumTypeExtension /* precedence: right 0 */ { | |||
@specialize<Name, "extend"> @specialize<Name, "enum"> Name Directives? !typeDe | ExtendKeyword EnumKeyword Name Directives? !typeDef EnumValuesDefinition | | |||
f EnumValuesDefinition | | ExtendKeyword EnumKeyword Name Directives? | |||
@specialize<Name, "extend"> @specialize<Name, "enum"> Name Directives? | } | |||
InputKeyword { | ||||
@specialize<Name, "input"> | ||||
} | } | |||
InputObjectTypeExtension /* precedence: right 0 */ { | InputObjectTypeExtension /* precedence: right 0 */ { | |||
@specialize<Name, "extend"> @specialize<Name, "input"> Name Directives? InputF | ExtendKeyword InputKeyword Name Directives? InputFieldsDefinition+ | | |||
ieldsDefinition+ | | ExtendKeyword InputKeyword Name Directives? | |||
@specialize<Name, "extend"> @specialize<Name, "input"> Name Directives? | ||||
} | } | |||
InputFieldsDefinition { | InputFieldsDefinition { | |||
!fieldDef "{" InputValueDefinition+ "}" | !fieldDef "{" InputValueDefinition+ "}" | |||
} | } | |||
EnumValuesDefinition { | EnumValuesDefinition { | |||
!fieldDef "{" EnumValueDefinition+ "}" | !fieldDef "{" EnumValueDefinition+ "}" | |||
} | } | |||
EnumValueDefinition { | EnumValueDefinition { | |||
Description? EnumValue Directives? | Description? EnumValue Directives? | |||
} | } | |||
ImplementsKeyword { | ||||
@specialize<Name, "implements"> | ||||
} | ||||
ImplementsInterfaces { | ImplementsInterfaces { | |||
ImplementsInterfaces "&" NamedType | | ImplementsInterfaces "&" NamedType | | |||
@specialize<Name, "implements"> "&"? NamedType | ImplementsKeyword "&"? NamedType | |||
} | } | |||
FieldsDefinition { | FieldsDefinition { | |||
!fieldDef "{" FieldDefinition+ "}" | !fieldDef "{" FieldDefinition+ "}" | |||
} | } | |||
FieldDefinition { | FieldDefinition { | |||
Description? Name ArgumentsDefinition? ":" Type Directives? | Description? Name ArgumentsDefinition? ":" Type Directives? | |||
} | } | |||
skipping to change at line 147 | skipping to change at line 179 | |||
TypeDefinition { | TypeDefinition { | |||
ScalarTypeDefinition | | ScalarTypeDefinition | | |||
ObjectTypeDefinition | | ObjectTypeDefinition | | |||
InterfaceTypeDefinition | | InterfaceTypeDefinition | | |||
UnionTypeDefinition | | UnionTypeDefinition | | |||
EnumTypeDefinition | | EnumTypeDefinition | | |||
InputObjectTypeDefinition | InputObjectTypeDefinition | |||
} | } | |||
ScalarTypeDefinition /* precedence: right 0 */ { | ScalarTypeDefinition /* precedence: right 0 */ { | |||
Description? @specialize<Name, "scalar"> Name Directives? | Description? ScalarKeyword Name Directives? | |||
} | ||||
TypeKeyword { | ||||
@specialize<Name, "type"> | ||||
} | } | |||
ObjectTypeDefinition /* precedence: right 0 */ { | ObjectTypeDefinition /* precedence: right 0 */ { | |||
Description? @specialize<Name, "type"> Name ImplementsInterfaces? Directives? FieldsDefinition? | Description? TypeKeyword Name ImplementsInterfaces? Directives? FieldsDefiniti on? | |||
} | } | |||
InterfaceTypeDefinition /* precedence: right 0 */ { | InterfaceTypeDefinition /* precedence: right 0 */ { | |||
Description? @specialize<Name, "interface"> Name ImplementsInterfaces? Directi ves? FieldsDefinition? | Description? InterfaceKeyword Name ImplementsInterfaces? Directives? FieldsDef inition? | |||
} | } | |||
UnionTypeDefinition /* precedence: right 0 */ { | UnionTypeDefinition /* precedence: right 0 */ { | |||
Description? @specialize<Name, "union"> Name Directives? UnionMemberTypes? | Description? UnionKeyword Name Directives? UnionMemberTypes? | |||
} | } | |||
EnumTypeDefinition /* precedence: right 0 */ { | EnumTypeDefinition /* precedence: right 0 */ { | |||
Description? @specialize<Name, "enum"> Name Directives? !typeDef EnumValuesDef inition? | Description? EnumKeyword Name Directives? !typeDef EnumValuesDefinition? | |||
} | } | |||
InputObjectTypeDefinition /* precedence: right 0 */ { | InputObjectTypeDefinition /* precedence: right 0 */ { | |||
Description? @specialize<Name, "input"> Name Directives? !typeDef InputFieldsD efinition? | Description? InputKeyword Name Directives? !typeDef InputFieldsDefinition? | |||
} | } | |||
VariableDefinitions { | VariableDefinitions { | |||
"(" VariableDefinition+ ")" | "(" VariableDefinition+ ")" | |||
} | } | |||
VariableDefinition { | VariableDefinition { | |||
Variable ":" Type DefaultValue? Directives? Comma? | Variable ":" Type DefaultValue? Directives? Comma? | |||
} | } | |||
skipping to change at line 240 | skipping to change at line 276 | |||
} | } | |||
ObjectField { | ObjectField { | |||
Name ":" Value Comma? | Name ":" Value Comma? | |||
} | } | |||
FragmentSpread { | FragmentSpread { | |||
"..." FragmentName Directives? | "..." FragmentName Directives? | |||
} | } | |||
FragmentKeyword { | ||||
@specialize<Name, "fragment"> | ||||
} | ||||
FragmentDefinition { | FragmentDefinition { | |||
@specialize<Name, "fragment"> FragmentName TypeCondition Directives? Selection Set | FragmentKeyword FragmentName TypeCondition Directives? SelectionSet | |||
} | } | |||
FragmentName { | FragmentName { | |||
Name | Name | |||
} | } | |||
InlineFragment { | InlineFragment { | |||
"..." TypeCondition? Directives? SelectionSet | "..." TypeCondition? Directives? SelectionSet | |||
} | } | |||
OnKeyword { | ||||
@specialize<Name, "on"> | ||||
} | ||||
TypeCondition { | TypeCondition { | |||
@specialize<Name, "on"> NamedType | OnKeyword NamedType | |||
} | } | |||
Directives { | Directives { | |||
Directive+ | Directive+ | |||
} | } | |||
DirectiveName { | ||||
"@" Name | ||||
} | ||||
Directive { | Directive { | |||
"@" Name Arguments? | DirectiveName Arguments? | |||
} | ||||
DirectiveKeyword { | ||||
@specialize<Name, "directive"> | ||||
} | ||||
RepeatableKeyword { | ||||
@specialize<Name, "repeatable"> | ||||
} | } | |||
DirectiveDefinition /* precedence: right 1 */ { | DirectiveDefinition /* precedence: right 1 */ { | |||
Description? @specialize<Name, "directive"> "@" Name ArgumentsDefinition? @spe cialize<Name, "repeatable"> ? @specialize<Name, "on"> DirectiveLocations | Description? DirectiveKeyword "@" Name ArgumentsDefinition? RepeatableKeyword ? OnKeyword DirectiveLocations | |||
} | } | |||
DirectiveLocations { | DirectiveLocations { | |||
DirectiveLocations "|" DirectiveLocation | | DirectiveLocations "|" DirectiveLocation | | |||
"|"? DirectiveLocation | "|"? DirectiveLocation | |||
} | } | |||
DirectiveLocation { | DirectiveLocation { | |||
ExecutableDirectiveLocation | | ExecutableDirectiveLocation | | |||
TypeSystemDirectiveLocation | TypeSystemDirectiveLocation | |||
skipping to change at line 341 | skipping to change at line 397 | |||
| @specialize<Name, "FIELD_DEFINITION"> | | @specialize<Name, "FIELD_DEFINITION"> | |||
| @specialize<Name, "ARGUMENT_DEFINITION"> | | @specialize<Name, "ARGUMENT_DEFINITION"> | |||
| @specialize<Name, "INTERFACE"> | | @specialize<Name, "INTERFACE"> | |||
| @specialize<Name, "UNION"> | | @specialize<Name, "UNION"> | |||
| @specialize<Name, "ENUM"> | | @specialize<Name, "ENUM"> | |||
| @specialize<Name, "ENUM_VALUE"> | | @specialize<Name, "ENUM_VALUE"> | |||
| @specialize<Name, "INPUT_OBJECT"> | | @specialize<Name, "INPUT_OBJECT"> | |||
| @specialize<Name, "INPUT_FIELD_DEFINITION"> | | @specialize<Name, "INPUT_FIELD_DEFINITION"> | |||
} | } | |||
@skip { Whitespace | Comment } | ||||
@tokens { | @tokens { | |||
Whitespace { | whitespace { | |||
std.whitespace+ | std.whitespace+ | |||
} | } | |||
StringValue { | StringValue { | |||
"\"\"\"" (!["] | "\\n" | "\"" "\""? !["])* "\"\"\"" | "\"" !["\\\n]* "\"" | "\"\"\"" (!["] | "\\n" | "\"" "\""? !["])* "\"\"\"" | "\"" !["\\\n]* "\"" | |||
} | } | |||
IntValue { | IntValue { | |||
"-"? "0" | "-"? "0" | |||
| "-"? std.digit+ | | "-"? std.digit+ | |||
} | } | |||
FloatValue { | FloatValue { | |||
IntValue ("." std.digit+ | ("e" | "E") IntValue+) | IntValue ("." std.digit+ | ("e" | "E") IntValue+) | |||
} | } | |||
@precedence { IntValue, FloatValue } | @precedence { IntValue, FloatValue } | |||
Name { | Name { | |||
$[_A-Za-z] $[_0-9A-Za-z]* | $[_A-Za-z] $[_0-9A-Za-z]* | |||
} | } | |||
Comment { | ||||
"#" ![\n]* | ||||
} | ||||
Comma { | Comma { | |||
"," | "," | |||
} | } | |||
Comment { | ||||
"#" ![\n]* | ||||
} | ||||
"{" "}" | ||||
} | } | |||
@skip { whitespace | Comment } | ||||
@detectDelim | @detectDelim | |||
End of changes. 31 change blocks. | ||||
37 lines changed or deleted | 92 lines changed or added |