xing-hu / EMSE-DeepCom

The dataset for EMSE-DeepCom
MIT License
118 stars 63 forks source link

File get_ast.py returns too big a string. #21

Closed AetherPrior closed 3 years ago

AetherPrior commented 3 years ago

Hi, it appears that python handles its print method differently now: When file get_ast.py is run on a .java file, you get the full constructor with all its parameters returned when the json.dump method is called on the output variable, and we see a huge output in the json.

A small example will describe the issue:

tree = javalang.parse.parse("public class a {public static void main(String args[]){}}");
>>> for path, node in tree:
...     print(path,node)

gives the following output:

() CompilationUnit(imports=[], package=None, types=[ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None)])
(CompilationUnit(imports=[], package=None, types=[ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None)]), [ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None)]) ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None)
(CompilationUnit(imports=[], package=None, types=[ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None)]), [ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None)], ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None), [MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)]) MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)
(CompilationUnit(imports=[], package=None, types=[ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None)]), [ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None)], ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None), [MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None), [FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)]) FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)
(CompilationUnit(imports=[], package=None, types=[ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None)]), [ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None)], ClassDeclaration(annotations=[], body=[MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], documentation=None, extends=None, implements=None, modifiers={'public'}, name=a, type_parameters=None), [MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None)], MethodDeclaration(annotations=[], body=[], documentation=None, modifiers={'public', 'static'}, name=main, parameters=[FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], return_type=None, throws=None, type_parameters=None), [FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)], FormalParameter(annotations=[], modifiers=set(), name=args, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None), varargs=False)) ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None)

There's a relatively simple fix to this, but I'd want to make sure if this really is an issue at the moment.

AetherPrior commented 3 years ago

Okay, looks like there was a issue already about it, closing.