def __init__(self, parser, properties, templates): self.parser = parser self.templates = TEMPLATES.copy() self.templates.update(templates) self.show_warnings = self._get_int_property(properties, 'warnings', 1) self.fields = parser.fields # Build a label dictionary self.labels = {} for entry in self.parser.memory_map: for instruction in entry.instructions: label = instruction.asm_label if label: self.labels[instruction.address] = label # Determine the base and end addresses self.base_address = 16384 self.end_address = 65535 if self.labels: self.base_address = min(self.labels) elif self.parser.memory_map: self.base_address = self.parser.memory_map[0].instructions[ 0].address if self.parser.memory_map: self.end_address = self.parser.memory_map[-1].instructions[ -1].address self.lower = self.case == CASE_LOWER # Field widths (line = indent + instruction + ' ; ' + comment) if self._get_int_property(properties, 'tab', 0): self.indent_width = 8 self.indent = '\t' else: self.indent_width = self._get_int_property(properties, 'indent', 2) self.indent = ' ' * self.indent_width self.instr_width = self._get_int_property(properties, 'instruction-width', 23) self.min_comment_width = self._get_int_property( properties, 'comment-width-min', 10) self.line_width = self._get_int_property(properties, 'line-width', 79) self.desc_width = self._get_text_width('comment') # Line terminator if self._get_int_property(properties, 'crlf', 0): self.end = '\r\n' else: self.end = '\n' # Label suffix if self._get_int_property(properties, 'label-colons', 1): self.label_suffix = ':' else: self.label_suffix = '' min_col_width = self._get_int_property(properties, 'wrap-column-width-min', 10) self.table_writer = TableWriter(self, self.desc_width, min_col_width, properties) self.handle_unsupported_macros = self._get_int_property( properties, 'handle-unsupported-macros', 0) self.snapshot = self.parser.snapshot self._snapshots = [(self.snapshot, '')] self.list_parser = ListParser(properties.get('bullet', '*')) self.to_chr = lambda n: chr(n) self.get_reg = lambda r: r self.space = ' ' self.pc = 0 self.macros = skoolmacro.get_macros(self) self.init()
def __init__(self, base, case): self.parser = namedtuple('SkoolParser', ('base', 'case'))(base, case) self.macros = get_macros(self)
def __init__(self, base, case): self.base = base self.case = case self.macros = get_macros(self)
def __init__(self, parser, properties, lower): self.parser = parser self.base = parser.base self.show_warnings = self._get_int_property(properties, 'warnings', 1) # Build a label dictionary self.labels = {} for entry in self.parser.memory_map: for instruction in entry.instructions: label = instruction.asm_label if label: self.labels[instruction.address] = label # Determine the base and end addresses self.base_address = 16384 self.end_address = 65535 if self.labels: self.base_address = min([address for address in self.labels.keys()]) elif self.parser.memory_map: self.base_address = self.parser.memory_map[0].instructions[0].address if self.parser.memory_map: self.end_address = self.parser.memory_map[-1].instructions[-1].address self.bullet = properties.get('bullet', '*') self.lower = lower # Field widths (line = indent + instruction + ' ; ' + comment) if self._get_int_property(properties, 'tab', 0): self.indent_width = 8 self.indent = '\t' else: self.indent_width = self._get_int_property(properties, 'indent', 2) self.indent = ' ' * self.indent_width self.instr_width = self._get_int_property(properties, 'instruction-width', DEF_INSTRUCTION_WIDTH) self.min_comment_width = self._get_int_property(properties, 'comment-width-min', 10) self.line_width = self._get_int_property(properties, 'line-width', 79) self.desc_width = self.line_width - 2 # Line terminator if self._get_int_property(properties, 'crlf', 0): self.end = '\r\n' else: self.end = '\n' # Label suffix if self._get_int_property(properties, 'label-colons', 1): self.label_suffix = ':' else: self.label_suffix = '' min_col_width = self._get_int_property(properties, 'wrap-column-width-min', 10) self.table_writer = TableWriter(self, self.desc_width, min_col_width) self.handle_unsupported_macros = self._get_int_property(properties, 'handle-unsupported-macros', 0) self.snapshot = self.parser.snapshot self._snapshots = [(self.snapshot, '')] self.list_parser = ListParser() self.macros = skoolmacro.get_macros(self)
def __init__(self, parser, properties): self.parser = parser self.show_warnings = self._get_int_property(properties, 'warnings', 1) self.fields = { 'asm': 1, 'base': self.base, 'case': self.case, 'html': 0 } # Build a label dictionary self.labels = {} for entry in self.parser.memory_map: for instruction in entry.instructions: label = instruction.asm_label if label: self.labels[instruction.address] = label # Determine the base and end addresses self.base_address = 16384 self.end_address = 65535 if self.labels: self.base_address = min([address for address in self.labels.keys()]) elif self.parser.memory_map: self.base_address = self.parser.memory_map[0].instructions[0].address if self.parser.memory_map: self.end_address = self.parser.memory_map[-1].instructions[-1].address self.bullet = properties.get('bullet', '*') self.lower = self.case == CASE_LOWER # Field widths (line = indent + instruction + ' ; ' + comment) if self._get_int_property(properties, 'tab', 0): self.indent_width = 8 self.indent = '\t' else: self.indent_width = self._get_int_property(properties, 'indent', 2) self.indent = ' ' * self.indent_width self.instr_width = self._get_int_property(properties, 'instruction-width', DEF_INSTRUCTION_WIDTH) self.min_comment_width = self._get_int_property(properties, 'comment-width-min', 10) self.line_width = self._get_int_property(properties, 'line-width', 79) self.desc_width = self.line_width - 2 # Line terminator if self._get_int_property(properties, 'crlf', 0): self.end = '\r\n' else: self.end = '\n' # Label suffix if self._get_int_property(properties, 'label-colons', 1): self.label_suffix = ':' else: self.label_suffix = '' min_col_width = self._get_int_property(properties, 'wrap-column-width-min', 10) self.table_writer = TableWriter(self, self.desc_width, min_col_width) self.handle_unsupported_macros = self._get_int_property(properties, 'handle-unsupported-macros', 0) self.snapshot = self.parser.snapshot self._snapshots = [(self.snapshot, '')] self.list_parser = ListParser() self.macros = skoolmacro.get_macros(self) self.init()