自作シェルにおいてA?B:Cの三項演算子を実装したいと考えています。
A,B,Cそれぞれの中にさらに三項演算子が入れ子になることを許容したいのですが、どのように実装をすればよいのでしょうか?
実装の方針、あるいは参考になる文献やソースコードがあれば教えてください。
入れ子にならない条件(?:が一回しか出てこない)であればできています。
なるほど、わからないレベルと。
A B C はそれぞれ式なので、どれだけ複雑な式がその言語で記述できるかによって求められるコードは変わります。そんなピンポイントなものがどこかに転がっているわけがないので自分で作らなければいけません。
複雑な構文を許すなら既存の構文解析器を使うのがいいでしょうし、自分のできる範囲までレベルを落とすのも選択肢の一つでしょう。
カッコの数を数えてスタックを使うのがまあ単純で簡単なんじゃないですかね。