パースの段階では構文木を構築するだけにして、実行とは段階を分けるのが普通。
小手先のトリックを使えばなんとかならんでもないけど…
例えば

cond: __STATE_IF expression __STATE_THEN
ifstatement: cond expression __STATE_ELSE expression

という風にふたつに分離してしまえば条件節の結果を先に得られるので、
それが真であれば else 節はよみとばす (パースだけして副作用を発生させないようにフラグを立てるとか) というような実装にできる。