structure Syntax = struct (***** ↓ここから重要ポイント *****) datatype statement = (* 文の構文木を表すバリアント型 *) Const of string * int (* x = i の形の文 *) | Add of string * string * string (* x = y + z の形の文 *) | While of string * string * statement (* while (x > y) 文 の形の文 *) | Seq of statement list (* { 文1; 文2; …; 文n } の形の文 *) | Print of string (* print x の形の文 *) (***** ↑ここまで重要ポイント *****) end