Rule 式の評価順

HerbertOnlineJudgeの場合、式の内側、つまりカッコの内側から評価されて行きます。
例を追いながら見ていきましょう。

a(X):XXXX // プロシージャ定義部分
b(X):XXr // プロシージャ定義部分
c(X):X   // プロシージャ定義部分

a(b(c(sss)))  // 式実行部分

*式の下線部が現在評価している評価部分になります。
  1. まずは式の内側"a(b(c(sss)))"が評価されます
  2. これはc(X):Xですので、
  3. "a(b(sss))"となります。
  4. 次にカッコの内側"a(b(sss)))"が評価されて
  5. b(X):XXrなので
  6. "a(ssssssr)"となります
  7. 最後に一番外側、最後のカッコを評価するので
  8. "a(ssssssr)"となって
  9. a(X):XXXXなので
  10. "ssssssrssssssrssssssrssssssr"となり、
  11. 無事全部の式が評価され終わりました。

式部分だけ抜き出して羅列するとこうなります。

a(b(c(sss)))
a(b(sss))
a(ssssssr)
ssssssrssssssrssssssrssssssr