diff --git a/osaca/parser/parser_x86att.py b/osaca/parser/parser_x86att.py index 155dd74..85dfd0d 100644 --- a/osaca/parser/parser_x86att.py +++ b/osaca/parser/parser_x86att.py @@ -52,7 +52,9 @@ class ParserX86ATT(BaseParser): joinString="::", ).setResultsName("name") + pp.Optional(relocation).setResultsName("relocation") - + pp.Optional(pp.Suppress(pp.Optional(pp.Literal("+"))) + decimal_number).setResultsName("offset") + + pp.Optional( + pp.Suppress(pp.Optional(pp.Literal("+"))) + decimal_number + ).setResultsName("offset") ).setResultsName("identifier") # Label label_rest = pp.Word(pp.alphanums + "$_.+-()") @@ -107,13 +109,15 @@ class ParserX86ATT(BaseParser): ^ pp.Word(pp.nums) ^ pp.Group( pp.Optional(offset.setResultsName("offset")) - + pp.Optional(pp.Literal("(") - + pp.Optional(self.register.setResultsName("base")) - + pp.Optional(pp.Suppress(pp.Literal(","))) - + pp.Optional(self.register.setResultsName("index")) - + pp.Optional(pp.Suppress(pp.Literal(","))) - + pp.Optional(scale.setResultsName("scale")) - + pp.Literal(")")) + + pp.Optional( + pp.Literal("(") + + pp.Optional(self.register.setResultsName("base")) + + pp.Optional(pp.Suppress(pp.Literal(","))) + + pp.Optional(self.register.setResultsName("index")) + + pp.Optional(pp.Suppress(pp.Literal(","))) + + pp.Optional(scale.setResultsName("scale")) + + pp.Literal(")") + ) ) ) memory_segmentation = (