Files
OSACA/osaca/parser/identifier.py
Metehan Dundar 1ceac6e9f3 Refactor: RISC-V parser, code formatting, and flake8 compliance
- Enhanced RISC-V parser to support reloc_type and symbol in ImmediateOperand.
- Added missing attributes (reloc_type, symbol) to ImmediateOperand and updated __eq__ for backward compatibility.
- Fixed all flake8 (E501, E265, F401, F841) and Black formatting issues across the codebase.
- Improved docstrings and split long lines for better readability.
- Fixed test failures related to ImmediateOperand instantiation and attribute errors.
- Ensured all tests pass, including edge cases for RISC-V, x86, and AArch64.
- Updated .gitignore and documentation as needed.
- Renamed example files for consistency (rv6 -> rv64).
2025-07-04 23:21:06 +02:00

56 lines
1.3 KiB
Python

#!/usr/bin/env python3
from osaca.parser.operand import Operand
class IdentifierOperand(Operand):
def __init__(
self, name=None, offset=None, relocation=None, source=False, destination=False
):
super().__init__(source, destination)
self._name = name
self._offset = offset
self._relocation = relocation
@property
def name(self):
return self._name
@name.setter
def name(self, name):
self._name = name
@property
def offset(self):
return self._offset
@property
def relocation(self):
return self._relocation
@offset.setter
def offset(self, offset):
self._offset = offset
@relocation.setter
def relocation(self, relocation):
self._relocation = relocation
def __str__(self):
return (
f"Identifier(name={self._name}, offset={self._offset}, "
f"relocation={self._relocation})"
)
def __repr__(self):
return self.__str__()
def __eq__(self, other):
if isinstance(other, IdentifierOperand):
return (
self._name == other._name
and self._offset == other._offset
and self._relocation == other._relocation
)
return False