Skip to content

Instantly share code, notes, and snippets.

@appcypher
Created April 5, 2020 18:12
Show Gist options
  • Save appcypher/25e6ba970a9389f0466c79dbd7c9a012 to your computer and use it in GitHub Desktop.
Save appcypher/25e6ba970a9389f0466c79dbd7c9a012 to your computer and use it in GitHub Desktop.
Raccoon AST Sample
[
Class(
name=Identifier(index=1),
body=[
Function(
name=Identifier(index=5),
body=[
AssignmentStatement(
lhses=[
Field(
expr=Identifier(index=15),
field=Identifier(index=17)
)
],
assignment_op=Operator(op=18, rem_op=None),
value_expr=Identifier(index=19),
type_annotation=None
),
AssignmentStatement(
lhses=[
Field(
expr=Identifier(index=21),
field=Identifier(index=23)
)
],
assignment_op=Operator(op=24, rem_op=None),
value_expr=Identifier(index=25),
type_annotation=None
)
],
params=FuncParams(
params=[
FuncParam(
name=Identifier(index=7),
type_annotation=None,
default_value_expr=None
),
FuncParam(
name=Identifier(index=9),
type_annotation=None,
default_value_expr=None
),
FuncParam(
name=Identifier(index=11),
type_annotation=None,
default_value_expr=None
)
],
tuple_rest_param=None,
keyword_only_params=[],
named_tuple_rest_param=None
),
return_type_annotation=None,
generics_annotation=None,
is_async=False,
decorators=[]
),
Function(
name=Identifier(index=29),
body=[ReturnStatement(exprs=PrefixedString(index=36))],
params=FuncParams(
params=[
FuncParam(
name=Identifier(index=31),
type_annotation=None,
default_value_expr=None
)
],
tuple_rest_param=None,
keyword_only_params=[],
named_tuple_rest_param=None
),
return_type_annotation=None,
generics_annotation=None,
is_async=False,
decorators=[]
)
],
parent_classes=None,
generics_annotation=None,
decorators=[]
),
AssignmentStatement(
lhses=[Identifier(index=41)],
assignment_op=Operator(op=42, rem_op=None),
value_expr=Call(
expr=Identifier(index=43),
arguments=[
Argument(expr=String(index=45), name=None),
Argument(expr=Integer(index=47), name=None)
]
),
type_annotation=None
),
Call(
expr=Identifier(index=50),
arguments=[Argument(expr=Identifier(index=52), name=None)]
)
]
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person(name={self.name}, age{self.age})"
john = Person("John", 45)
print(john)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment