大学の試験のためにコンパイラーのいくつかのことを修正していますが、オペレータートークンがどのIDを持っているのか疑問に思いました。例えば...
float position, initial, rate;
position = initial += rate * 60
トークン、タイプ; 位置、ID; =、=; 初期、ID; + =、??? (これはどのタイプですか); レート、ID; *、*; 60、num;
大学の試験のためにコンパイラーのいくつかのことを修正していますが、オペレータートークンがどのIDを持っているのか疑問に思いました。例えば...
float position, initial, rate;
position = initial += rate * 60
トークン、タイプ; 位置、ID; =、=; 初期、ID; + =、??? (これはどのタイプですか); レート、ID; *、*; 60、num;
+= が += ではないことは確かですか? +や=と同じように、標準で定義された演算子であるべきだと思います。
このMSDN の記事では、コンパイラは可能な限り長いトークン (左から右へ読む) を選択する必要があるため、コンパイラが i+=5 を 2 つの演算子として混同しないようにする必要があると述べています。彼らが与える例は i+++j == (i++) + j です。