Skip to content

Commit 252b9c7

Browse files
committed
AST for experimental schema definitions
1 parent 2ae5c17 commit 252b9c7

File tree

1 file changed

+76
-1
lines changed

1 file changed

+76
-1
lines changed

ast/ast.ast

Lines changed: 76 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,23 @@
77
# O for option in a union.
88
# Scalar type ontology: string, boolean
99

10-
# Location tracking for Identifier is probably useful for error messages.
10+
# Definitions other than OperationDefinition and FragmentDefinition
11+
# are experimental additions for schema parsing. (We don't support
12+
# nested unions in the AST mini-language, so I've flattened and elided
13+
# TypeSystemDefinition and TypeDefinition.)
1114
U Definition
1215
O OperationDefinition
1316
O FragmentDefinition
17+
O SchemaDefinition
18+
O ScalarTypeDefinition
19+
O ObjectTypeDefinition
20+
O InterfaceTypeDefinition
21+
O UnionTypeDefinition
22+
O EnumTypeDefinition
23+
O InputObjectTypeDefinition
24+
O TypeExtensionDefinition
25+
O DirectiveDefinition
26+
1427

1528
T Document
1629
P Definition definitions
@@ -124,3 +137,65 @@ S Type type
124137

125138
T Name
126139
S string value
140+
141+
T SchemaDefinition
142+
P? Directive directives
143+
P OperationTypeDefinition operationTypes
144+
145+
T OperationTypeDefinition
146+
S OperationKind operation
147+
S NamedType type
148+
149+
T ScalarTypeDefinition
150+
S Name name
151+
P? Directive directives
152+
153+
T ObjectTypeDefinition
154+
S Name name
155+
P? NamedType interfaces
156+
P? Directive directives
157+
P FieldDefinition fields
158+
159+
T FieldDefinition
160+
S Name name
161+
P? InputValueDefinition arguments
162+
S Type type
163+
P? Directive directives
164+
165+
T InputValueDefinition
166+
S Name name
167+
S Type type
168+
S? Value defaultValue
169+
P? Directive directives
170+
171+
T InterfaceTypeDefinition
172+
S Name name
173+
P? Directive directives
174+
P FieldDefinition fields
175+
176+
T UnionTypeDefinition
177+
S Name name
178+
P? Directive directives
179+
P NamedType types
180+
181+
T EnumTypeDefinition
182+
S Name name
183+
P? Directive directives
184+
P EnumValueDefinition values
185+
186+
T EnumValueDefinition
187+
S Name name
188+
P? Directive directives
189+
190+
T InputObjectTypeDefinition
191+
S Name name
192+
P? Directive directives
193+
P InputValueDefinition fields
194+
195+
T TypeExtensionDefinition
196+
S ObjectTypeDefinition definition
197+
198+
T DirectiveDefinition
199+
S Name name
200+
P? InputValueDefinition arguments
201+
P Name locations

0 commit comments

Comments
 (0)