Skip to content

Commit

Permalink
[asdl, core, ysh] Autoformat with yapf (#1632)
Browse files Browse the repository at this point in the history
Use 4 spaces!
  • Loading branch information
melvinw committed May 25, 2023
1 parent c932a40 commit 8139ff7
Show file tree
Hide file tree
Showing 55 changed files with 17,585 additions and 17,394 deletions.
326 changes: 163 additions & 163 deletions asdl/asdl_main.py

Large diffs are not rendered by default.

298 changes: 149 additions & 149 deletions asdl/ast.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""
AST for ASDL. (Not self-hosted!)
"""AST for ASDL.
(Not self-hosted!)
"""
from __future__ import print_function

Expand All @@ -14,216 +15,214 @@

class AST(object):

def Print(self, f, indent):
raise NotImplementedError()
def Print(self, f, indent):
raise NotImplementedError()

def __str__(self):
f = cStringIO.StringIO()
self.Print(f, 0)
return f.getvalue()
def __str__(self):
f = cStringIO.StringIO()
self.Print(f, 0)
return f.getvalue()


class Use(AST):

def __init__(self, module_parts, type_names):
self.module_parts = module_parts
self.type_names = type_names
def __init__(self, module_parts, type_names):
self.module_parts = module_parts
self.type_names = type_names

def Print(self, f, indent):
ind = indent * ' '
f.write('%sUse %s {\n' % (ind, ' '.join(self.module_parts)))
f.write(' %s%s\n' % (ind, ', '.join(t for t in self.type_names)))
f.write('%s}\n' % ind)
def Print(self, f, indent):
ind = indent * ' '
f.write('%sUse %s {\n' % (ind, ' '.join(self.module_parts)))
f.write(' %s%s\n' % (ind, ', '.join(t for t in self.type_names)))
f.write('%s}\n' % ind)


class Module(AST):

def __init__(self, name, uses, dfns):
self.name = name
self.uses = uses
self.dfns = dfns
def __init__(self, name, uses, dfns):
self.name = name
self.uses = uses
self.dfns = dfns

def Print(self, f, indent):
ind = indent * ' '
f.write('%sModule %s {\n' % (ind, self.name))
def Print(self, f, indent):
ind = indent * ' '
f.write('%sModule %s {\n' % (ind, self.name))

for u in self.uses:
u.Print(f, indent + 1)
f.write('\n')
for u in self.uses:
u.Print(f, indent + 1)
f.write('\n')

for d in self.dfns:
d.Print(f, indent + 1)
f.write('\n')
f.write('%s}\n' % ind)
for d in self.dfns:
d.Print(f, indent + 1)
f.write('\n')
f.write('%s}\n' % ind)


class TypeDecl(AST):
"""A binding of name to a Sum or Product type."""
"""A binding of name to a Sum or Product type."""

def __init__(self, name, value):
self.name = name # type: str
self.value = value # type: AST
def __init__(self, name, value):
self.name = name # type: str
self.value = value # type: AST

def Print(self, f, indent):
ind = indent * ' '
f.write('%sType %s {\n' % (ind, self.name))
self.value.Print(f, indent + 1)
f.write('%s}\n' % ind)
def Print(self, f, indent):
ind = indent * ' '
f.write('%sType %s {\n' % (ind, self.name))
self.value.Print(f, indent + 1)
f.write('%s}\n' % ind)


class NamedType(AST):
"""
int, string are resolved to a Primitive type
'Point' can be resolved to CompoundSum instance, etc.
"""
"""Int, string are resolved to a Primitive type 'Point' can be resolved to
CompoundSum instance, etc."""

def __init__(self, name):
# type: (str) -> None
self.name = name
def __init__(self, name):
# type: (str) -> None
self.name = name

# Mutated by _ResolveModule / _ResolveType
self.resolved = None
# Mutated by _ResolveModule / _ResolveType
self.resolved = None

def Print(self, f, indent):
"""Printed on one line."""
ind = indent * ' '
f.write('NamedType %s' % (self.name)) # printed after field
f.write(' (%r)' % self.resolved)
def Print(self, f, indent):
"""Printed on one line."""
ind = indent * ' '
f.write('NamedType %s' % (self.name)) # printed after field
f.write(' (%r)' % self.resolved)

def IsOptional(self):
return False
def IsOptional(self):
return False

def IsList(self):
return False
def IsList(self):
return False

def IsDict(self):
return False
def IsDict(self):
return False


class ParameterizedType(AST):
"""A parameterized type expression, e.g. the type of a field.
"""A parameterized type expression, e.g. the type of a field.
e.g. Dict[string, int] Dict[int, array[string]]
e.g. Dict[string, int] Dict[int, array[string]]
self.children is empty if it's a leaf.
self.children is empty if it's a leaf.
Note:
Note:
string* <=> array[string]
mytype? <=> maybe[mytype]
"""
string* <=> array[string]
mytype? <=> maybe[mytype]
"""

def __init__(self, type_name, children):
self.type_name = type_name # type: str
self.children = children # type: List[AST]
def __init__(self, type_name, children):
self.type_name = type_name # type: str
self.children = children # type: List[AST]

def Print(self, f, indent):
"""Printed on one line."""
ind = indent * ' '
f.write('%s' % (self.type_name)) # printed after field
if self.children:
f.write(' [ ')
for i, child in enumerate(self.children):
if i != 0:
f.write(', ')
child.Print(f, indent + 1)
f.write(' ]')
def Print(self, f, indent):
"""Printed on one line."""
ind = indent * ' '
f.write('%s' % (self.type_name)) # printed after field
if self.children:
f.write(' [ ')
for i, child in enumerate(self.children):
if i != 0:
f.write(', ')
child.Print(f, indent + 1)
f.write(' ]')

def IsOptional(self):
return self.type_name == 'Optional'
def IsOptional(self):
return self.type_name == 'Optional'

def IsList(self):
if self.type_name == 'List':
return True
if self.type_name == 'Optional':
return self.children[0].IsList()
return False
def IsList(self):
if self.type_name == 'List':
return True
if self.type_name == 'Optional':
return self.children[0].IsList()
return False

def IsDict(self):
if self.type_name == 'Dict':
return True
if self.type_name == 'Optional':
return self.children[0].IsDict()
return False
def IsDict(self):
if self.type_name == 'Dict':
return True
if self.type_name == 'Optional':
return self.children[0].IsDict()
return False


class Field(AST):

def __init__(self, typ, name):
# type: (AST, str) -> None
self.typ = typ # type expression
self.name = name # variable name
def __init__(self, typ, name):
# type: (AST, str) -> None
self.typ = typ # type expression
self.name = name # variable name

def Print(self, f, indent):
ind = indent * ' '
f.write('%sField %r ' % (ind, self.name))
self.typ.Print(f, indent)
f.write('\n')
def Print(self, f, indent):
ind = indent * ' '
f.write('%sField %r ' % (ind, self.name))
self.typ.Print(f, indent)
f.write('\n')


class _CompoundAST(AST):
"""Either a Product or Constructor.
"""Either a Product or Constructor.
encode.py and format.py need a reflection API.
"""
encode.py and format.py need a reflection API.
"""

def __init__(self, fields):
self.fields = fields or []
def __init__(self, fields):
self.fields = fields or []


class Constructor(_CompoundAST):

def __init__(self, name, shared_type=None, fields=None):
_CompoundAST.__init__(self, fields)
self.name = name
self.shared_type = shared_type # for DoubleQuoted %DoubleQuoted
def __init__(self, name, shared_type=None, fields=None):
_CompoundAST.__init__(self, fields)
self.name = name
self.shared_type = shared_type # for DoubleQuoted %DoubleQuoted

def Print(self, f, indent):
ind = indent * ' '
f.write('%sConstructor %s' % (ind, self.name))
if self.shared_type:
f.write(' %%%s' % self.shared_type)
def Print(self, f, indent):
ind = indent * ' '
f.write('%sConstructor %s' % (ind, self.name))
if self.shared_type:
f.write(' %%%s' % self.shared_type)

if self.fields:
f.write(' {\n')
for field in self.fields:
field.Print(f, indent + 1)
f.write('%s}' % ind)
if self.fields:
f.write(' {\n')
for field in self.fields:
field.Print(f, indent + 1)
f.write('%s}' % ind)

f.write('\n')
f.write('\n')


class Sum(AST):

def __init__(self, types, generate=None):
self.types = types # type: List[Constructor]
self.generate = generate or []
def __init__(self, types, generate=None):
self.types = types # type: List[Constructor]
self.generate = generate or []

def Print(self, f, indent):
ind = indent * ' '
f.write('%sSum {\n' % ind)
for t in self.types:
t.Print(f, indent + 1)
if self.generate:
f.write('%s generate %s\n' % (ind, self.generate))
f.write('%s}\n' % ind)
def Print(self, f, indent):
ind = indent * ' '
f.write('%sSum {\n' % ind)
for t in self.types:
t.Print(f, indent + 1)
if self.generate:
f.write('%s generate %s\n' % (ind, self.generate))
f.write('%s}\n' % ind)


class SimpleSum(Sum):
pass
pass


class Product(_CompoundAST):

def __init__(self, fields):
_CompoundAST.__init__(self, fields)
def __init__(self, fields):
_CompoundAST.__init__(self, fields)

def Print(self, f, indent):
ind = indent * ' '
f.write('%sProduct {\n' % ind)
for field in self.fields:
field.Print(f, indent + 1)
f.write('%s}\n' % ind)
def Print(self, f, indent):
ind = indent * ' '
f.write('%sProduct {\n' % ind)
for field in self.fields:
field.Print(f, indent + 1)
f.write('%s}\n' % ind)


#
Expand All @@ -232,9 +231,10 @@ def Print(self, f, indent):


def TypeNameHeuristic(t):
# type: (str) -> str
"""
For 'use'. We don't parse the imported file, so we have a heuristic based on
the name! e.g. re_t or BraceGroup
"""
return '%s_t' % t if t[0].islower() else t
# type: (str) -> str
"""For 'use'.
We don't parse the imported file, so we have a heuristic based on
the name! e.g. re_t or BraceGroup
"""
return '%s_t' % t if t[0].islower() else t

0 comments on commit 8139ff7

Please sign in to comment.