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
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()
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()
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
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()