Я новичок в Ocaml и пытаюсь распечатать дерево AST, однако получаю синтаксическую ошибку в in
функции mon_to_string
. Примечание. Все используемые функции определены.
let rec print exp =
let rec the_exp tree out = match tree with
[] -> out
and exp_to_string tree = match tree with
| Ast.Expression.Identifier(x) -> print_identifier x
| Ast.Expression.Literal(x) -> print_literal x
| Ast.Expression.BinaryExp(x) -> print_bin_exp x
| Ast.Expression.UnaryExp(x) -> print_unary_exp x
in "<Expression>\n" ^ exp_to_string exp ^ "</Expression>\n"
and mon_to_string tree = match tree with
| Ast.Monitor.ExpressionGuard(x) -> print_exp_guard x
| Ast.Monitor.QuantifiedGuard(x) -> print_quant_guard x
| Ast.Monitor.Conditional(x) -> print_conditional x
| Ast.Monitor.Evaluate(x) -> print_eval x
| Ast.Monitor.Choice(x) -> print_choice x
in "<Monitor>" ^ "\n" ^ mon_to_string exp ^ "</Monitor>\n"
in
только с однимlet
. Какое выражение должен возвращать внешнийprint
? - person Bergi   schedule 15.02.2018