createCodeBlock {switch("1"){"1" then "println(1)""2" then switch("a".S()){"a".S() then "println(1)"Else{statement("throw %T()", typeNameFor<NullPointerException>()) } }"3"then {statement("println(1)")statement("println(2)") }Else("TODO()") }}
it actually generates the following, but it's the same: