mlox/lib/stmt.ml

13 lines
477 B
OCaml

type stmt = Expr of Expr.expr_node | Print of Expr.expr_node
and stmt_node = { stmt : stmt; pos : Error.code_pos }
let show_stmt stmt =
match stmt with Expr expr -> Expr.show_expr expr.expr | Print expr -> Expr.show_expr expr.expr
let make_expr_stmt (pos : Error.code_pos) (expr : Expr.expr_node) : stmt_node =
let stmt = Expr expr in
{ stmt; pos }
let make_print (pos : Error.code_pos) (expr : Expr.expr_node) : stmt_node =
let stmt = Print expr in
{ stmt; pos }