頭」が期待している実験結果となったかな。専攻科実験で、「字句解析と構文解析で電卓プログラムを作ろう」というネタを実施中。サンプルプログラムを見せて、課題の1つが「式を読みやすくするための空白が使えるように改良」としているが、学生さんより、『最初に空白を全部消してから処理するのはアリ?』との質問。動くプログラムをつくってくれればいいけど....でも、空白を先に全部消してから、トークン切り出しをやると、色々とトラブルが起こる。;昔、私が学生の頃に使ったCコンパイラは、"+="演算子を、"=+"と書いても良かった。1"と誤認され、プログラムがバグった。この経験以降、代入文の"="の前後とかややこしい演算子の式で、空白を適所に打たないヤツはシロウト判定している。((例2))C++でのテンプレートクラスでは、<>の中に型を書いたりするけど、Foot<int>といった型も出てくる。いった型を使う場合がある。空白除去後に字句解析をすると、Foo<Bar<int>>となり、右シフト演算子になる。・C++03までは、テンプレートの">"の前後には空白を入れるべき。・C++11からは、"<"のトークンの数で">>"でも区別してくれる。複数桁の数字が使えること。式中に空白が使えること。何らかの演算子を追加すること。%,単項演算子のマイナスなど演算子が左結合か右結合か確認すること。基本的に、lex+yaccで(1)と同様の課題完成を目指す。miniOrange。