>>56
47 だけど、正確には

msg_list := msgs
    | msg_list ';' msgs
msgs :=
    | msgs msg
msg := identifier
    | identifier '(' args ')'
args :=
    | msg_list
    | args ',' msg_list

みたいな感じだから、S式よりも複雑だったり。
ttp://www.iolanguage.com/docs/grammar/bnf/


ちなみに2項演算子は構文糖として処理され、中身は↑のような形式に。