Skip to content

Commit

Permalink
python3
Browse files Browse the repository at this point in the history
  • Loading branch information
RekGRpth committed May 24, 2022
1 parent 7e6c35c commit 549256a
Show file tree
Hide file tree
Showing 11 changed files with 120 additions and 120 deletions.
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ INCLUDE(version)

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")

FIND_PACKAGE(PythonInterp 2 REQUIRED)
IF (NOT PYTHON_VERSION_MAJOR EQUAL 2)
MESSAGE(FATAL_ERROR "Python 2 is required.")
FIND_PACKAGE(PythonInterp 3 REQUIRED)
IF (NOT PYTHON_VERSION_MAJOR EQUAL 3)
MESSAGE(FATAL_ERROR "Python 3 is required.")
ENDIF()

FIND_PROGRAM(CTYPESGEN_FOUND ctypesgen.py)
Expand Down
18 changes: 9 additions & 9 deletions ast/c.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,41 +60,41 @@ def __init__(self):
self._current_type = None

def start_file(self):
print C_LICENSE_COMMENT + '''/** @generated */
print(C_LICENSE_COMMENT + '''/** @generated */
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
'''
''')

def end_file(self):
print '''
print('''
#ifdef __cplusplus
}
#endif
'''
''')

def start_type(self, name):
# Forward declarations for AST nodes.
st_name = struct_name(name)
print 'struct ' + st_name + ';'
print('struct ' + st_name + ';')
self._current_type = name

def field(self, type, name, nullable, plural):
print field_prototype(self._current_type, type, name, nullable, plural) + ';'
print(field_prototype(self._current_type, type, name, nullable, plural) + ';')

def end_type(self, name):
print
print()

def start_union(self, name):
print 'struct ' + struct_name(name) + ';'
print('struct ' + struct_name(name) + ';')

def union_option(self, option):
pass

def end_union(self, name):
print
print()
18 changes: 9 additions & 9 deletions ast/c_impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ def __init__(self):
self._current_type = None

def start_file(self):
print C_LICENSE_COMMENT + '''/** @generated */
print(C_LICENSE_COMMENT + '''/** @generated */
#include "GraphQLAst.h"
#include "../Ast.h"
using namespace facebook::graphql::ast; // NOLINT
'''
''')

def end_file(self):
pass
Expand All @@ -30,23 +30,23 @@ def start_type(self, name):
self._current_type = name

def field(self, type, name, nullable, plural):
print field_prototype(self._current_type, type, name, nullable, plural) + ' {'
print ' const auto *realNode = reinterpret_cast<const %s *>(node);' % self._current_type
print(field_prototype(self._current_type, type, name, nullable, plural) + ' {')
print(' const auto *realNode = reinterpret_cast<const %s *>(node);' % self._current_type)
title_name = title(name)
call_get = 'realNode->get%s()' % title_name
if plural:
if nullable:
print ' return %s ? %s->size() : 0;' % (call_get, call_get)
print(' return %s ? %s->size() : 0;' % (call_get, call_get))
else:
print ' return %s.size();' % call_get
print(' return %s.size();' % call_get)
else:
if type in ['string', 'OperationKind', 'boolean']:
print ' return %s;' % call_get
print(' return %s;' % call_get)
else:
fmt = ' return reinterpret_cast<const struct %s *>(%s%s);'
print fmt % (struct_name(type), '' if nullable else '&', call_get)
print(fmt % (struct_name(type), '' if nullable else '&', call_get))

print '}'
print('}')

def end_type(self, name):
pass
Expand Down
6 changes: 3 additions & 3 deletions ast/c_visitor_impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ def __init__(self):
self._types = []

def start_file(self):
print C_LICENSE_COMMENT + '/** @generated */'
print '#define FOR_EACH_CONCRETE_TYPE(MACRO) \\'
print(C_LICENSE_COMMENT + '/** @generated */')
print('#define FOR_EACH_CONCRETE_TYPE(MACRO) \\')

def start_type(self, name):
self._types.append(name)
Expand All @@ -27,7 +27,7 @@ def end_type(self, name):
pass

def end_file(self):
print ' \\\n'.join('MACRO(%s, %s)' % (name, snake(name)) for name in self._types)
print(' \\\n'.join('MACRO(%s, %s)' % (name, snake(name)) for name in self._types))

def start_union(self, name):
pass
Expand Down
86 changes: 43 additions & 43 deletions ast/cxx.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.

import cStringIO as StringIO
import io as StringIO

from casing import title
from license import C_LICENSE_COMMENT
Expand All @@ -21,7 +21,7 @@ def __init__(self):
self._fields = []

def start_file(self):
print C_LICENSE_COMMENT + '''/** @generated */
print(C_LICENSE_COMMENT + '''/** @generated */
#pragma once
#include "AstNode.h"
Expand All @@ -40,14 +40,14 @@ def start_file(self):
struct CDeleter {
void operator()(const char *p) const { free((void *)p); }
};
'''
''')

def end_file(self):
print
print self._deferredOutput.getvalue()
print '}'
print '}'
print '}'
print()
print(self._deferredOutput.getvalue())
print('}')
print('}')
print('}')

def _base_class(self, type):
return self._bases.get(type, 'Node')
Expand All @@ -56,8 +56,8 @@ def start_type(self, name):
self._type_name = name
base = self._base_class(name)
# non-deferred!
print 'class %s;' % name
print >> self._deferredOutput, 'class %s : public %s {' % (name, base)
print('class %s;' % name)
print('class %s : public %s {' % (name, base), file=self._deferredOutput)
self._fields = []

def field(self, type, name, nullable, plural):
Expand All @@ -67,18 +67,18 @@ def field(self, type, name, nullable, plural):

def end_type(self, name):
self._print_fields()
print >> self._deferredOutput, ' public:'
print(' public:', file=self._deferredOutput)
self._print_constructor()
print >> self._deferredOutput
print(file=self._deferredOutput)
self._print_destructor_prototype()
print >> self._deferredOutput
print(file=self._deferredOutput)
self._print_noncopyable()
print >> self._deferredOutput
print(file=self._deferredOutput)
self._print_getters()
print >> self._deferredOutput, ' void accept(visitor::AstVisitor *visitor) const override;'
print >> self._deferredOutput, '};'
print >> self._deferredOutput
print >> self._deferredOutput
print(' void accept(visitor::AstVisitor *visitor) const override;', file=self._deferredOutput)
print('};', file=self._deferredOutput)
print(file=self._deferredOutput)
print(file=self._deferredOutput)
self._type_name = None
self._fields = []

Expand All @@ -95,7 +95,7 @@ def _print_fields(self):
storage_type = self._storage_type(type)
if plural:
storage_type = 'std::unique_ptr<std::vector<%s>>' % storage_type
print >> self._deferredOutput, ' %s %s_;' % (storage_type, name)
print(' %s %s_;' % (storage_type, name), file=self._deferredOutput)

def _ctor_singular_type(self, type):
if type == 'string':
Expand All @@ -109,28 +109,28 @@ def _ctor_plural_type(self, type):
return 'std::vector<%s> *' % self._storage_type(type)

def _print_constructor(self):
print >> self._deferredOutput, ' explicit %s(' % self._type_name
print >> self._deferredOutput, ' const yy::location &location%s' % (',' if self._fields else '')
print(' explicit %s(' % self._type_name, file=self._deferredOutput)
print(' const yy::location &location%s' % (',' if self._fields else ''), file=self._deferredOutput)
def ctor_arg(type, name, plural):
if plural:
ctor_type = self._ctor_plural_type(type)
else:
ctor_type = self._ctor_singular_type(type)
return ' %s %s' % (ctor_type, name)
print >> self._deferredOutput, ',\n'.join(ctor_arg(type, name, plural)
for (type, name, nullable, plural) in self._fields)
print >> self._deferredOutput, ' )'
print(',\n'.join(ctor_arg(type, name, plural)
for (type, name, nullable, plural) in self._fields), file=self._deferredOutput)
print(' )', file=self._deferredOutput)
def ctor_init(type, name, plural):
# Strings are const char *, just pass.
# Vectors are passed by pointer and we take ownership.
# Node types are passed in by pointer and we take ownership.
value = name
return ' %s_(%s)' % (name, value)
print >> self._deferredOutput, ' : %s(location)%s' % (self._base_class(self._type_name), ',' if self._fields else '')
print >> self._deferredOutput, ',\n'.join(ctor_init(type, name, plural)
print(' : %s(location)%s' % (self._base_class(self._type_name), ',' if self._fields else ''), file=self._deferredOutput)
print(',\n'.join(ctor_init(type, name, plural)
for (type, name, nullable, plural)
in self._fields)
print >> self._deferredOutput, ' {}'
in self._fields), file=self._deferredOutput)
print(' {}', file=self._deferredOutput)

def _getter_type(self, type, nullable, plural):
if plural and nullable:
Expand Down Expand Up @@ -163,31 +163,31 @@ def _getter_value_to_return(self, raw_value, type, nullable, plural):

def _print_getters(self):
for (type, name, nullable, plural) in self._fields:
print >> self._deferredOutput, ' %s get%s() const' % (
print(' %s get%s() const' % (
self._getter_type(type, nullable, plural),
title(name))
print >> self._deferredOutput, ' { return %s; }' % (
self._getter_value_to_return(name + '_', type, nullable, plural))
print >> self._deferredOutput
title(name)), file=self._deferredOutput)
print(' { return %s; }' % (
self._getter_value_to_return(name + '_', type, nullable, plural)), file=self._deferredOutput)
print(file=self._deferredOutput)

def _print_destructor_prototype(self):
print >> self._deferredOutput, ' ~%s() {}' % self._type_name
print(' ~%s() {}' % self._type_name, file=self._deferredOutput)

def _print_noncopyable(self):
print >> self._deferredOutput, ' %s(const %s&) = delete;' % (
self._type_name, self._type_name)
print >> self._deferredOutput, ' %s& operator=(const %s&) = delete;' % (
self._type_name, self._type_name)
print(' %s(const %s&) = delete;' % (
self._type_name, self._type_name), file=self._deferredOutput)
print(' %s& operator=(const %s&) = delete;' % (
self._type_name, self._type_name), file=self._deferredOutput)

def start_union(self, name):
self._type_name = name
# non-deferred!
print 'class %s;' % name
print >> self._deferredOutput, 'class %s : public Node {' % name
print >> self._deferredOutput, ' public:'
print('class %s;' % name)
print('class %s : public Node {' % name, file=self._deferredOutput)
print(' public:', file=self._deferredOutput)
self._print_constructor()
print >> self._deferredOutput, '};'
print >> self._deferredOutput
print('};', file=self._deferredOutput)
print(file=self._deferredOutput)

def union_option(self, type):
assert type not in self._bases, '%s cannot appear in more than one union!' % type
Expand Down
22 changes: 11 additions & 11 deletions ast/cxx_impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,25 @@ def __init__(self):
pass

def start_file(self):
print C_LICENSE_COMMENT + '''/** @generated */
print(C_LICENSE_COMMENT + '''/** @generated */
#include "Ast.h"
#include "AstVisitor.h"
namespace facebook {
namespace graphql {
namespace ast {
'''
''')

def end_file(self):
print '} // namespace ast'
print '} // namespace graphql'
print '} // namespace facebook'
print('} // namespace ast')
print('} // namespace graphql')
print('} // namespace facebook')

def start_type(self, name):
print '''void %s::accept(visitor::AstVisitor *visitor) const {
print('''void %s::accept(visitor::AstVisitor *visitor) const {
if (visitor->visit%s(*this)) {
''' % (name, name)
''' % (name, name))

def field(self, type, name, nullable, plural):
if type in ['OperationKind', 'string', 'boolean']:
Expand All @@ -38,18 +38,18 @@ def field(self, type, name, nullable, plural):
accept = '{ for (const auto &x : *%s_) { x->accept(visitor); } }' % name
if nullable:
accept = 'if (%s_) %s' % (name, accept)
print ' ' + accept
print(' ' + accept)
else:
accept = '%s_->accept(visitor);' % name
if nullable:
accept = 'if (%s_) { %s }' % (name, accept)
print ' ' + accept
print(' ' + accept)

def end_type(self, name):
print ''' }
print(''' }
visitor->endVisit%s(*this);
}
''' % name
''' % name)

def start_union(self, name):
pass
Expand Down
8 changes: 4 additions & 4 deletions ast/cxx_json_visitor_header.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def __init__(self):
self._anyFieldIsANode = False

def start_file(self):
print C_LICENSE_COMMENT + '/** @generated */'
print(C_LICENSE_COMMENT + '/** @generated */')

def end_file(self):
pass
Expand All @@ -23,9 +23,9 @@ def start_type(self, name):
def end_type(self, name):
titleName = title(name)
if self._anyFieldIsANode:
print 'bool visit%s(const %s &node) override;' % (titleName, titleName)
print 'void endVisit%s(const %s &node) override;' % (titleName, titleName)
print
print('bool visit%s(const %s &node) override;' % (titleName, titleName))
print('void endVisit%s(const %s &node) override;' % (titleName, titleName))
print()

def field(self, type, name, nullable, plural):
if (not self._anyFieldIsANode and
Expand Down

0 comments on commit 549256a

Please sign in to comment.