pp4d - 条件文

条件文のandやorって、読みやすく書くのは難しいと思いませんか?

if(  testA
  && (  testB
     || testC )
  && testD )
{
  //実行内容
}

せいぜい、上のように書くのが精一杯かな?
lisp的な記述なら、こんな感じ。

(if (and testA
         (or testB
             testC)
         testD)
    (実行内容))

でも、もっと分かりやすそうな記述方法を思いついたので、pp4dには、それを搭載しようと思う。

if & testA
   & | testB
     | testC
   & testD
    //実行内容

考えているのは、解析方法と、否定の入れ方だ。
上の構文は、行連結されて、下のように変換されるのだが、これだけみると、単純なスタックで解析できそうだが、「|」を「&」に変えてみると、そんなに単純ではないことがわかる。

if & testA & | testB | testC & testD
    //実行内容

あと、否定を入れる場合、下の書き方でいいのかな?

if & testA
   & ! | testB
       | testC
   & testD