K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>たびたびお邪魔します。 >3章途中まで読み進めたのですが、わからないところがあったので教えてください。 >P.102のcrowbar.lのソースで、59行目で整数型「([1-9][0-9]*)|"0"」、65行目で実数型「0-9]+\.[0-9]+」、78行目で例外「.」のトークンを切り分けているように見えます。 >入力が、「123.456」だった場合、なぜ実数型のトークンと判断されるのでしょうか? >疑問に思ったのは「123.456」を「123」を整数型トークン、「.」を例外トークン、「456」の整数型トークンと判断する方法や、「1」,「2」「3」「.」「4」「5」「6」を全て例外トークンとして扱うこともできそうな気がするのですが、そうならない理由がわからないためです。 >(済みません。書籍に記述があるのに私が読み飛ばしてしまっているだけかもしれません。) >また、整数トークンと実数トークン、"if"トークンと[ \t]トークンの関係から推測すると、例えば"for while other if"みたいな命令語もトークンとして定義できそうですが、その場合に.lファイルでの定義行(ルール順番)によっては動きが変わるものなのでしょうか? > > >整数型の場合「....|"0"」と0をダブルクォーテーションで括っていますが、電卓のケースでP.36では、「(....|0|([0-9]....)」と0をダブルクォーテーションで括っていません。この違いが上の判断条件に影響しているのでしょうか?
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!