Skip to content
This repository has been archived by the owner on Apr 16, 2024. It is now read-only.

Commit

Permalink
feat: use own serializer files (#40)
Browse files Browse the repository at this point in the history
  • Loading branch information
jitsedesmet authored Jul 25, 2023
1 parent 1e541d6 commit 212a46b
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 7 deletions.
1 change: 1 addition & 0 deletions examples/2-methods.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"codeAttributes":[{"clazz":"PartialEvaluatorDummy","method":"test0()I","instructions":[{"offset":0,"instruction":"iconst_0","finalVariablesBefore":["LPartialEvaluatorDummy;!"],"finalStackBefore":[]},{"offset":1,"instruction":"ireturn","finalVariablesBefore":["LPartialEvaluatorDummy;!"],"finalStackBefore":["0"],"finalTargetInstructions":[]}],"parameters":["LPartialEvaluatorDummy;!"],"blockEvaluations":[{"startOffset":0,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"iconst_0","instructionOffset":0,"variablesBefore":["LPartialEvaluatorDummy;!"],"stackBefore":[]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"ireturn","instructionOffset":1,"variablesBefore":["LPartialEvaluatorDummy;!"],"stackBefore":["0"]}],"branchEvaluationStack":[],"startVariables":["LPartialEvaluatorDummy;!"],"startStack":[]}]},{"clazz":"PartialEvaluatorDummy","method":"test1()I","instructions":[{"offset":0,"instruction":"iconst_1","finalVariablesBefore":["LPartialEvaluatorDummy;!"],"finalStackBefore":[]},{"offset":1,"instruction":"ireturn","finalVariablesBefore":["LPartialEvaluatorDummy;!"],"finalStackBefore":["1"],"finalTargetInstructions":[]}],"parameters":["LPartialEvaluatorDummy;!"],"blockEvaluations":[{"startOffset":0,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"iconst_1","instructionOffset":0,"variablesBefore":["LPartialEvaluatorDummy;!"],"stackBefore":[]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"ireturn","instructionOffset":1,"variablesBefore":["LPartialEvaluatorDummy;!"],"stackBefore":["1"]}],"branchEvaluationStack":[],"startVariables":["LPartialEvaluatorDummy;!"],"startStack":[]}]}]}
2 changes: 1 addition & 1 deletion examples/branches.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion examples/catch-empty-slot.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"codeAttributes":[{"clazz":"PartialEvaluatorDummy","method":"test()Ljava/lang/Object;","instructions":[{"offset":0,"instruction":"ldc #7"},{"offset":2,"instruction":"astore_0 v0"},{"offset":3,"instruction":"aload_1 v1"},{"offset":4,"instruction":"areturn"}],"parameters":["a","empty"],"error":{"instructionOffset":3,"message":"Value in slot 1 is empty"},"blockEvaluations":[{"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"ldc #7","instructionOffset":0,"variablesBefore":["a","empty"],"stackBefore":[]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"astore_0 v0","instructionOffset":2,"variablesBefore":["a","empty"],"stackBefore":["a"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"aload_1 v1","instructionOffset":3,"variablesBefore":["a","empty"],"stackBefore":[]}],"startVariables":["a","empty"],"startStack":[],"startOffset":0,"branchEvaluationStack":[]}]}]}
{"codeAttributes":[{"clazz":"PartialEvaluatorDummy","method":"test()Ljava/lang/Object;","instructions":[{"offset":0,"instruction":"ldc #7"},{"offset":2,"instruction":"astore_0 v0"},{"offset":3,"instruction":"aload_1 v1"},{"offset":4,"instruction":"areturn"}],"parameters":["a","empty"],"blockEvaluations":[{"startOffset":0,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"ldc #7","instructionOffset":0,"variablesBefore":["a","empty"],"stackBefore":[]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"astore_0 v0","instructionOffset":2,"variablesBefore":["a","empty"],"stackBefore":["a"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"aload_1 v1","instructionOffset":3,"variablesBefore":["a","empty"],"stackBefore":[]}],"branchEvaluationStack":[],"startVariables":["a","empty"],"startStack":[]}],"error":{"instructionOffset":3,"message":"Value in slot 1 is empty"}}]}
2 changes: 1 addition & 1 deletion examples/complete-cycle.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion examples/evaluateSingleInstructionBlock-reflective.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion examples/methodFilter.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"codeAttributes":[{"clazz":"PartialEvaluatorDummy","method":"test0()I","instructions":[{"offset":0,"instruction":"iconst_0"},{"offset":1,"instruction":"ireturn"}],"parameters":["LPartialEvaluatorDummy;!"],"blockEvaluations":[{"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"iconst_0","instructionOffset":0,"variablesBefore":["LPartialEvaluatorDummy;!"],"stackBefore":[]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"ireturn","instructionOffset":1,"variablesBefore":["LPartialEvaluatorDummy;!"],"stackBefore":["0"]}],"startVariables":["LPartialEvaluatorDummy;!"],"startStack":[],"startOffset":0,"branchEvaluationStack":[]}]}]}
{"codeAttributes":[{"clazz":"PartialEvaluatorDummy","method":"test0()I","instructions":[{"offset":0,"instruction":"iconst_0","finalVariablesBefore":["LPartialEvaluatorDummy;!"],"finalStackBefore":[]},{"offset":1,"instruction":"ireturn","finalVariablesBefore":["LPartialEvaluatorDummy;!"],"finalStackBefore":["1"],"finalTargetInstructions":[]}],"parameters":["LPartialEvaluatorDummy;!"],"blockEvaluations":[{"startOffset":0,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"iconst_0","instructionOffset":0,"variablesBefore":["LPartialEvaluatorDummy;!"],"stackBefore":[]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"ireturn","instructionOffset":1,"variablesBefore":["LPartialEvaluatorDummy;!"],"stackBefore":["0"]}],"branchEvaluationStack":[],"startVariables":["LPartialEvaluatorDummy;!"],"startStack":[]}]}]}
2 changes: 1 addition & 1 deletion examples/simple-catch-no-throw.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"codeAttributes":[{"clazz":"PartialEvaluatorDummy","method":"test()I","instructions":[{"offset":0,"instruction":"iconst_2"},{"offset":1,"instruction":"ireturn"},{"offset":2,"instruction":"iconst_1"},{"offset":3,"instruction":"ireturn"}],"parameters":["LPartialEvaluatorDummy;!#0"],"blockEvaluations":[{"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"iconst_2","instructionOffset":0,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":[]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"ireturn","instructionOffset":1,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["2"]}],"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":[],"startOffset":0,"branchEvaluationStack":[]}]}]}
{"codeAttributes":[{"clazz":"PartialEvaluatorDummy","method":"test()I","instructions":[{"offset":0,"instruction":"iconst_2","finalVariablesBefore":["LPartialEvaluatorDummy;!#0"],"finalStackBefore":[]},{"offset":1,"instruction":"ireturn","finalVariablesBefore":["LPartialEvaluatorDummy;!#0"],"finalStackBefore":["2"],"finalTargetInstructions":[]},{"offset":2,"instruction":"iconst_1"},{"offset":3,"instruction":"ireturn"}],"parameters":["LPartialEvaluatorDummy;!#0"],"blockEvaluations":[{"startOffset":0,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"iconst_2","instructionOffset":0,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":[]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"ireturn","instructionOffset":1,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["2"]}],"branchEvaluationStack":[],"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":[]}]}]}
2 changes: 1 addition & 1 deletion examples/simple-throw-and-catch.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"codeAttributes":[{"clazz":"PartialEvaluatorDummy","method":"test()I","instructions":[{"offset":0,"instruction":"aload_0 v0"},{"offset":1,"instruction":"athrow"},{"offset":2,"instruction":"iconst_1"},{"offset":3,"instruction":"ireturn"}],"parameters":["LPartialEvaluatorDummy;!#0"],"blockEvaluations":[{"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"aload_0 v0","instructionOffset":0,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":[]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"athrow","instructionOffset":1,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["LPartialEvaluatorDummy;!#0"]}],"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":[],"startOffset":0,"branchEvaluationStack":[]},{"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#1"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#1","1"]}],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#1"],"startOffset":2,"branchEvaluationStack":[]},{"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":1,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#2"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":1,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#2","1"]}],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#2"],"startOffset":2,"branchEvaluationStack":[]},{"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":2,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#3"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":2,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#3","1"]}],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#3"],"startOffset":2,"branchEvaluationStack":[]},{"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":3,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#4"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":3,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#4","1"]}],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#4"],"startOffset":2,"branchEvaluationStack":[]},{"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":4,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#5"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":4,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#5","1"]}],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#5"],"startOffset":2,"branchEvaluationStack":[]},{"evaluations":[{"skipEvaluation":false,"isGeneralization":true,"evaluationCount":5,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#6"]},{"skipEvaluation":false,"isGeneralization":true,"evaluationCount":5,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!","1"]}],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#6"],"startOffset":2,"branchEvaluationStack":[]},{"evaluations":[{"skipEvaluation":true,"isGeneralization":false,"evaluationCount":6,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!"]}],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#7"],"startOffset":2,"branchEvaluationStack":[]}]}]}
{"codeAttributes":[{"clazz":"PartialEvaluatorDummy","method":"test()I","instructions":[{"offset":0,"instruction":"aload_0 v0","finalVariablesBefore":["LPartialEvaluatorDummy;!#0"],"finalStackBefore":[]},{"offset":1,"instruction":"athrow","finalVariablesBefore":["LPartialEvaluatorDummy;!#0"],"finalStackBefore":["LPartialEvaluatorDummy;!#0"],"finalTargetInstructions":[]},{"offset":2,"instruction":"iconst_1","finalVariablesBefore":["LPartialEvaluatorDummy;!#0"],"finalStackBefore":["Ljava/lang/Throwable;?!"]},{"offset":3,"instruction":"ireturn","finalVariablesBefore":["LPartialEvaluatorDummy;!#0"],"finalStackBefore":["Ljava/lang/Throwable;?!","1"],"finalTargetInstructions":[]}],"parameters":["LPartialEvaluatorDummy;!#0"],"blockEvaluations":[{"startOffset":0,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"aload_0 v0","instructionOffset":0,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":[]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"athrow","instructionOffset":1,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["LPartialEvaluatorDummy;!#0"]}],"branchEvaluationStack":[],"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":[]},{"startOffset":2,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#1"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":0,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#1","1"]}],"branchEvaluationStack":[],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#1"]},{"startOffset":2,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":1,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#2"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":1,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#2","1"]}],"branchEvaluationStack":[],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#2"]},{"startOffset":2,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":2,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#3"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":2,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#3","1"]}],"branchEvaluationStack":[],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#3"]},{"startOffset":2,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":3,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#4"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":3,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#4","1"]}],"branchEvaluationStack":[],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#4"]},{"startOffset":2,"evaluations":[{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":4,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#5"]},{"skipEvaluation":false,"isGeneralization":false,"evaluationCount":4,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#5","1"]}],"branchEvaluationStack":[],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#5"]},{"startOffset":2,"evaluations":[{"skipEvaluation":false,"isGeneralization":true,"evaluationCount":5,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!#6"]},{"skipEvaluation":false,"isGeneralization":true,"evaluationCount":5,"instruction":"ireturn","instructionOffset":3,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!","1"]}],"branchEvaluationStack":[],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#6"]},{"startOffset":2,"evaluations":[{"skipEvaluation":true,"isGeneralization":false,"evaluationCount":6,"instruction":"iconst_1","instructionOffset":2,"variablesBefore":["LPartialEvaluatorDummy;!#0"],"stackBefore":["Ljava/lang/Throwable;?!"]}],"branchEvaluationStack":[],"exceptionHandlerInfo":{"catchStartOffset":0,"catchEndOffset":2,"handlerStartOffset":2,"catchType":"java/lang/Throwable"},"startVariables":["LPartialEvaluatorDummy;!#0"],"startStack":["Ljava/lang/Throwable;?!#7"]}]}]}
18 changes: 18 additions & 0 deletions src/jvmMain/kotlin/data/InstructionRecord.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,22 @@ data class InstructionRecord(
* String representation of the instruction
*/
val instruction: String,

/**
* Contains the final result computations from the partial evaluator regarding the variables of this instruction.
*/
val finalVariablesBefore: List<String>?,
/**
* Contains the final result computations from the partial evaluator regarding the stack of this instruction.
*/
val finalStackBefore: List<String>?,
/**
* Contains the final result computations from the partial evaluator regarding the target instructions of this instruction.
*/
val finalTargetInstructions: List<Int>?,
/**
* Contains the final result computations from the partial evaluator regarding the source instructions of this instruction.
*/
val finalOriginInstructions: List<Int>?,

)

0 comments on commit 212a46b

Please sign in to comment.