From 853f2cff912c420036e928beb7777dbecb261829 Mon Sep 17 00:00:00 2001 From: Graham Date: Mon, 15 Mar 2021 20:27:59 +0000 Subject: [PATCH] Add assignment operator support to HexLiteralTransformer Signed-off-by: Graham --- .../deob/ast/transform/HexLiteralTransformer.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/deob-ast/src/main/kotlin/org/openrs2/deob/ast/transform/HexLiteralTransformer.kt b/deob-ast/src/main/kotlin/org/openrs2/deob/ast/transform/HexLiteralTransformer.kt index 45e76328..b76597e7 100644 --- a/deob-ast/src/main/kotlin/org/openrs2/deob/ast/transform/HexLiteralTransformer.kt +++ b/deob-ast/src/main/kotlin/org/openrs2/deob/ast/transform/HexLiteralTransformer.kt @@ -1,6 +1,7 @@ package org.openrs2.deob.ast.transform import com.github.javaparser.ast.CompilationUnit +import com.github.javaparser.ast.expr.AssignExpr import com.github.javaparser.ast.expr.BinaryExpr import com.github.javaparser.ast.expr.Expression import com.github.javaparser.ast.expr.IntegerLiteralExpr @@ -26,6 +27,12 @@ public class HexLiteralTransformer : Transformer() { convertToHex(expr.right) } } + + unit.walk { expr: AssignExpr -> + if (expr.operator in ASSIGN_OPS) { + convertToHex(expr.value) + } + } } private fun convertToHex(expr: Expression) { @@ -46,5 +53,13 @@ public class HexLiteralTransformer : Transformer() { BinaryExpr.Operator.BINARY_OR, BinaryExpr.Operator.XOR ) + private val ASSIGN_OPS = setOf( + AssignExpr.Operator.BINARY_AND, + AssignExpr.Operator.BINARY_OR, + AssignExpr.Operator.LEFT_SHIFT, + AssignExpr.Operator.SIGNED_RIGHT_SHIFT, + AssignExpr.Operator.UNSIGNED_RIGHT_SHIFT, + AssignExpr.Operator.XOR + ) } }