Lines Matching defs:self
24 def __init__(self):
25 self.items = []
26 self.dependencies = {}
27 self.include_chain = []
29 def add_dependency(self, parent, dependency):
31 if parent in self.dependencies:
32 self.dependencies[parent].append(dependency)
34 self.dependencies[parent] = [dependency]
36 def get_dependencies(self, parent):
39 if parent in self.dependencies:
40 direct_deps = self.dependencies[parent]
43 deps += self.get_dependencies(direct_dep)
48 def parse(self, file_name):
52 if file_name not in self.include_chain:
53 self.include_chain.append(file_name)
54 self.dependencies[file_name] = []
68 self.items.append({"type": "reserved"})
72 self.add_dependency(file_name, included_file)
73 self.parse(included_file)
80 self.items.append({"type": "function", "library_name": library_name,
85 self.include_chain.pop()
91 def __init__(self, prog):
92 self.args = argparse.ArgumentParser(prog=prog, description=self.__doc__)
93 self.config = None
95 def parse_arguments(self, argv):
97 self.config = self.args.parse_args(argv)
99 def build_template(self, name, mapping=None, remove_comment=False):
105 with open(self.TEMPLATE_DIR + name, "r") as template_file:
125 def __init__(self, prog):
126 RomlibApplication.__init__(self, prog)
128 self.args.add_argument("-o", "--output", help="Output file", metavar="output",
130 self.args.add_argument("--deps", help="Dependency file")
131 self.args.add_argument("file", help="Input file")
133 def main(self):
140 index_file_parser.parse(self.config.file)
142 with open(self.config.output, "w") as output_file:
151 if self.config.deps:
152 with open(self.config.deps, "w") as deps_file:
153 deps = [self.config.file] + index_file_parser.get_dependencies(self.config.file)
154 deps_file.write(self.config.output + ": " + " \\\n".join(deps) + "\n")
159 def __init__(self, prog):
160 RomlibApplication.__init__(self, prog)
162 self.args.add_argument("-o", "--output", help="Output file", metavar="output",
164 self.args.add_argument("--bti", help="Branch Target Identification", type=int)
165 self.args.add_argument("file", help="Input file")
167 def main(self):
175 index_file_parser.parse(self.config.file)
177 with open(self.config.output, "w") as output_file:
178 output_file.write(self.build_template("jmptbl_header.S"))
179 bti = "_bti" if self.config.bti == 1 else ""
183 output_file.write(self.build_template(template_name, item, True))
191 def __init__(self, prog):
192 RomlibApplication.__init__(self, prog)
194 self.args.add_argument("-b", help="Build directory", default=".", metavar="build")
195 self.args.add_argument("--bti", help="Branch Target Identification", type=int)
196 self.args.add_argument("--list", help="Only list assembly files", action="store_true")
197 self.args.add_argument("file", help="Input file")
199 def main(self):
205 index_file_parser.parse(self.config.file)
207 bti = "_bti" if self.config.bti == 1 else ""
217 asm = self.config.b + "/" + item["function_name"] + ".s"
218 if self.config.list:
225 function_offset = item_index * (8 if self.config.bti else 4)
228 asm_file.write(self.build_template("wrapper" + bti + ".S", item))
230 if self.config.list:
236 def __init__(self, prog):
237 RomlibApplication.__init__(self, prog)
239 self.args.add_argument("-o", "--output", help="Output file", metavar="output",
241 self.args.add_argument("file", help="Input file")
243 def main(self):
248 symbols = subprocess.check_output(["nm", "-a", self.config.file])
252 raise Exception("No '.text' section was found in %s" % self.config.file)
256 with open(self.config.output, "w") as output_file:
257 output_file.write(self.build_template("jmptbl_glob_var.S", mapping))