type character = rule list and rule = Rule of state_number list * statement and statement = If of condition * statement * elseif list * statement | Decision of new_state * string | Case of string * arm list * statement and elseif = Elseif of condition * statement and arm = Arm of int list * statement and condition = Equals of string * int | And of condition list | Or of condition list and new_state = int option and state_number = int ;; val to_ast: character -> Ast.character val from_ast: Ast.character -> character