06/11/03 20:44:41 GIcTFPfW
>798
こんなんはどう? RPN作る/処理するのが面倒になるけど。
A and B
A #dup not #ifskip<N> #pop B #marker<N>
A or B
A #dup #ifskip<N> #pop B #marker<N>
#dup スタックの一番上を複製する
#pop スタックの一番上を捨てる
#ifskip<N> スタックの一番上を取り出し、
trueなら#marker<N>まで読み飛ばす
falseならそのまま続行
#marker<N> 読み飛ばされる
※入れ子になる場合があるのでNが重複しないよう気をつけること。
A and B and C
A #dup not #ifskip<N1> #pop B #dup not #ifskip<N2> #pop C #marker<N2> #marker<N1>
( Foo<>0 ) and ( 1000/Foo > 5 )
Foo 0 <> #dup not #ifskip<0> #pop 1000 Foo / 5 > #marker<0>
三項演算子もできるかな
A?B:C
A #ifskip<N1> C #ifskip<N2> #marker<N1> B #marker<N2>