riscemu.ExecutableParser module¶
RiscEmu (c) 2021 Anton Lydike
SPDX-License-Identifier: MIT
This file holds the parser that parses the tokenizer output.
-
class
riscemu.ExecutableParser.
ExecutableParser
(tokenizer: riscemu.Tokenizer.RiscVTokenizer)¶ Bases:
object
Parses output form the RiscVTokenizer
-
__init__
(tokenizer: riscemu.Tokenizer.RiscVTokenizer)¶ Initialize self. See help(type(self)) for accurate signature.
-
tokenizer
: riscemu.Tokenizer.RiscVTokenizer¶
-
parse
() → riscemu.Executable.Executable¶ parse tokenizer output into an executable :return: the parsed executable :raise ParseException: Raises a ParseException when invalid input is read
-
parse_instruction
(ins: riscemu.Tokenizer.RiscVInstructionToken) → None¶ parses an Instruction token :param ins: the instruction token
-
handle_symbol
(token: riscemu.Tokenizer.RiscVSymbolToken)¶ Handle a symbol token (such as ‘main:’) :param token: the symbol token
-
handle_pseudo_op
(op: riscemu.Tokenizer.RiscVPseudoOpToken)¶ Handle a pseudo op token (such as ‘.word 0xffaabbcc’) :param op: the peseudo-op token
-
op_section
(op: riscemu.Tokenizer.RiscVPseudoOpToken)¶ handles a .section token :param op: The token
-
op_text
(op: Optional[riscemu.Tokenizer.RiscVPseudoOpToken] = None)¶ handles a .text token :param op: The token
-
op_data
(op: Optional[riscemu.Tokenizer.RiscVPseudoOpToken] = None)¶ handles a .data token :param op: The token
-
op_rodata
(op: Optional[riscemu.Tokenizer.RiscVPseudoOpToken] = None)¶ handles a .rodata token :param op: The token
-
op_space
(op: riscemu.Tokenizer.RiscVPseudoOpToken)¶ handles a .space token. Inserts empty space into the current (data or rodata) section :param op: The token
-
op_ascii
(op: riscemu.Tokenizer.RiscVPseudoOpToken)¶ handles a .ascii token. Inserts ascii encoded text into the currrent data section :param op: The token
-
op_asciiz
(op: riscemu.Tokenizer.RiscVPseudoOpToken)¶ handles a .ascii token. Inserts nullterminated ascii encoded text into the currrent data section :param op: The token
-
op_global
(op: riscemu.Tokenizer.RiscVPseudoOpToken)¶ handles a .global token. Marks the token as global :param op: The token
-
op_set
(op: riscemu.Tokenizer.RiscVPseudoOpToken)¶ handles a .set name, val token. Sets the symbol name to val :param op: The token
-
op_align
(op: riscemu.Tokenizer.RiscVPseudoOpToken)¶ handles an align token. Currently a nop (just not implemented fully yet, as linker handles most alignement tasks) :param op: The token
-
op_word
(op: riscemu.Tokenizer.RiscVPseudoOpToken)¶
-