| `Exists -> "exists"
| `Forall -> "forall"
-let pp_literal =
+(* XXX: ignoring the optional CSYMBOL
+ * (it's fine if this is only used for pretty printing output notations) *)
+let pp_literal (_,t) =
if debug_printing then
- (function (* debugging version *)
- | `Symbol s -> sprintf "symbol(%s)" s
- | `Keyword s -> sprintf "keyword(%s)" s
- | `Number s -> sprintf "number(%s)" s)
- else
- (function
- | `Symbol s
- | `Keyword s
- | `Number s -> s)
+ (match t with (* debugging version *)
+ | `Symbol _ ->
+ sprintf "symbol(%s)" (NotationUtil.string_of_literal t)
+ | `Keyword _ ->
+ sprintf "keyword(%s)" (NotationUtil.string_of_literal t)
+ | `Number _ -> sprintf "number(%s)" (NotationUtil.string_of_literal t))
+ else NotationUtil.string_of_literal t
let pp_pos =
function
and pp_sep_opt = function
| None -> ""
- | Some sep -> sprintf " sep %s" (pp_literal sep)
+ | Some sep -> sprintf " sep %s" (pp_literal (None,sep))
and pp_variable = function
| Ast.NumVar s -> "number " ^ s