私は、制御フローと混合されたときに式がどのように解析されるかを知りたいと思います。数学的表現を制御フローと混合する
のは、このような構文を想定してみましょう:私たちはここで2つの条件式、Method() + 1
、Something(1)
と0
を持って
case
when a == Method() + 1
then Something(1)
when a == Other() - 2
then 1
else 0
end
。それぞれはShunting-yard algorithm
によって後置に変換され、容易にAST
に翻訳されます。しかし、このアルゴリズムを拡張して制御フローを処理することも可能ですか?あるいは、表現や制御フローの混在を解決するための他のアプローチがありますか?
別の例:
a == b ? 1 : 2
もどのように私は、このような表現を分類することができます:a between b and c
を、私はbetween
は三つの引数の関数であると言うことができますか?あるいは、そのような式の特別な名前はありますか?
「コントロールフロー」とは具体的にはどういう意味ですか? 「...と...と...」という言葉は、私がコントロールフローの構築物と考えるようなものではありません。あなたは "三元演算子"を意味するだけですか? – sepp2k
あなたの権利、私は制御フロー文を使用すべきではありません。私はそのような表現をどのように分類するのか分かりません。三元演算子ではないと思いますが、どういう名前ですか? – Puchacz
aとbとcの間には3つの引数があり、それはブール値を生成する式です。三項演算子です。 – EJP