2023-02-15 19:09:38 +00:00

32 lines
1007 B
Python
Executable File

#!/usr/bin/env python
# Copyright 2019-present, GraphQL Foundation
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
from ctypes import *
from GraphQLParser import *
def print_field(field, unused):
field_name = GraphQLAstField_get_name(field)
field_name_value = GraphQLAstName_get_value(field_name)
print 'field : ' + field_name_value
return 0
def main():
error = POINTER(c_char)()
ast = graphql_parse_string('query myquery { myfield }', byref(error))
field_visitor_callbacks = GraphQLAstVisitorCallbacks(visit_field = visit_field_func(print_field))
graphql_node_visit(ast, pointer(field_visitor_callbacks), None)
graphql_node_free(ast)
ast = graphql_parse_string('query errorQuery on oops { myfield }', byref(error))
print 'Example error:', string_at(error)
graphql_error_free(error)
if ast:
print 'BUG: we should have got a null AST back, but we got:', ast
if __name__ == '__main__':
main()