Beispiel #1
0
 def generate_tree(file_path):
     # Step 1: Load input source into stream
     stream = FileStream(file_path, encoding='utf8', errors='ignore')
     # Step 2: Create an instance of AssignmentStLexer
     lexer = JavaLexer(stream)
     # Step 3: Convert the input source into a list of tokens
     token_stream = CommonTokenStream(lexer)
     # Step 4: Create an instance of the AssignmentStParser
     parser = JavaParser(token_stream)
     # Step 5: Create parse tree
     parse_tree = parser.compilationUnit()
     return parse_tree
Beispiel #2
0
 def __init__(self, file_path, target_class, target_method, target_parameters):
     self.file_path = file_path
     self.new_file_path = file_path
     self.target_class = target_class
     self.target_method = target_method
     self.target_parameters = target_parameters
     self.stream = FileStream(self.file_path, encoding="utf8")
     self.lexer = JavaLexer(self.stream)
     self.token_stream = CommonTokenStream(self.lexer)
     self.parser = JavaParserLabeled(self.token_stream)
     self.tree = self.parser.compilationUnit()
     self.walker = ParseTreeWalker()
 def __init__(self, file_path, target_class, target_method, target_parameters):
     self.file_path = file_path
     self.new_file_path = \
         "C:\\Users\\asus\\Desktop\\desk\\projects\\Workspace\\Workspace\\src\\com\\amirh\\CodART_Test_result.java"
     self.target_class = target_class
     self.target_method = target_method
     self.target_parameters = target_parameters
     self.stream = FileStream(self.file_path, encoding="utf8")
     self.lexer = JavaLexer(self.stream)
     self.token_stream = CommonTokenStream(self.lexer)
     self.parser = JavaParserLabeled(self.token_stream)
     self.tree = self.parser.compilationUnit()
     self.walker = ParseTreeWalker()
Beispiel #4
0
 def __init__(self, file_path, target_class, target_method,
              target_parameters):
     self.file_path = file_path
     self.new_file_path = \
         "../tests/replace_parameter_with_quey_test/java_refactored.java"
     self.target_class = target_class
     self.target_method = target_method
     self.target_parameters = target_parameters
     self.stream = FileStream(self.file_path, encoding="utf8")
     self.lexer = JavaLexer(self.stream)
     self.token_stream = CommonTokenStream(self.lexer)
     self.parser = JavaParserLabeled(self.token_stream)
     self.tree = self.parser.compilationUnit()
     self.walker = ParseTreeWalker()
Beispiel #5
0
def get_program(source_files: list, print_status=False) -> Program:
    program = Program()
    for filename in source_files:
        if print_status:
            print("Parsing " + filename)
        stream = FileStream(filename, encoding='utf8')
        lexer = JavaLexer(stream)
        token_stream = CommonTokenStream(lexer)
        parser = JavaParser(token_stream)
        tree = parser.compilationUnit()
        listener = UtilsListener(filename)
        walker = ParseTreeWalker()
        walker.walk(listener, tree)

        if not listener.package.name in program.packages:
            program.packages[listener.package.name] = listener.package
        else:
            for classes_name in listener.package.classes:
                program.packages[listener.package.name].classes[
                    classes_name] = listener.package.classes[classes_name]

    return program
Beispiel #6
0
if __name__ == '__main__':
    source_class = "JSONArray"
    source_package = "org.json"
    target_class = "JSONObject"
    target_package = "org.json"
    field_name = "myArrayList"
    path = ""
    files = get_filenames_in_dir(
        '/home/loop/Desktop/Ass/Compiler/CodART/benchmark_projects/JSON/src/main/java/org/json/'
    )
    field = None
    methods_tobe_update = []
    for file in files:
        stream = FileStream(file, encoding='utf8')
        lexer = JavaLexer(stream)
        token_stream = CommonTokenStream(lexer)
        parser = JavaParser(token_stream)
        tree = parser.compilationUnit()
        utilsListener = PreConditionListener(file)
        walker = ParseTreeWalker()
        walker.walk(utilsListener, tree)

        if not utilsListener.can_convert:
            continue

        if len(utilsListener.package.classes) > 1:
            exit(1)

        # find fields with the type Source first and store it
        field_candidate = set()