Refactor the STEP macro in VMError::report to improve readability.
Right now the macro contains multiple statements on one line and the non-conventional control flow is even harder to understand.
This enhancement aims to do two things:
1. It splits the macro into multiple lines with indentations which makes the structure of the C++ code generated by the preprocessor clearer.
2. Separates the internal step logic from the decision logic which decides if a step should be taken with a STEP_IF(step_name_str, condition) macro
Right now the macro contains multiple statements on one line and the non-conventional control flow is even harder to understand.
This enhancement aims to do two things:
1. It splits the macro into multiple lines with indentations which makes the structure of the C++ code generated by the preprocessor clearer.
2. Separates the internal step logic from the decision logic which decides if a step should be taken with a STEP_IF(step_name_str, condition) macro