Combinational logic, as described above, is fully synthesizable. If it's also reasonable depends on the design purpose, which is unknown so far.
Your VHDL version is not exactly matching the AHDL code, I think. The latter is
not writing zero to unsunused output bits or to all output bits in an "others" case. However, when not setting q in all cases, Quartus will warn about latch inference for q, which may be either intended or not, depending on the exact functional definition.
P.S.: You didn't show the full AHDL code. Has the output signal an explicite or implicite default value of zero?