| Some `LeftToRight -> "> "
| Some `RightToLeft -> "< "
+let pp_interpretation dsc symbol arg_patterns cic_appl_pattern =
+ sprintf "interpretation \"%s\" '%s %s = %s"
+ dsc symbol
+ (String.concat " " (List.map pp_argument_pattern arg_patterns))
+ (CicNotationPp.pp_cic_appl_pattern cic_appl_pattern)
+
+let pp_default what uris =
+ sprintf "default \"%s\" %s" what
+ (String.concat " " (List.map UriManager.string_of_uri uris))
+
+let pp_notation dir_opt l1_pattern assoc prec l2_pattern =
+ sprintf "notation %s\"%s\" %s %s for %s"
+ (pp_dir_opt dir_opt)
+ (pp_l1_pattern l1_pattern)
+ (pp_associativity assoc)
+ (pp_precedence prec)
+ (pp_l2_pattern l2_pattern)
+
+let pp_coercion_ast term do_composites =
+ sprintf "coercion %s (* %s *)" (pp_term_ast term)
+ (if do_composites then "compounds" else "no compounds")
+
+let pp_coercion_cic term do_composites =
+ sprintf "coercion %s (* %s *)" (pp_term_cic term)
+ (if do_composites then "compounds" else "no compounds")
+
let pp_command = function
| Include (_,path) -> "include " ^ path
| Qed _ -> "qed"
| Drop _ -> "drop"
| Set (_, name, value) -> sprintf "set \"%s\" \"%s\"" name value
- | Coercion (_,term, _do_composites) ->
- sprintf "coercion %s" (pp_term_ast term)
+ | Coercion (_,term, do_composites) ->
+ pp_coercion_ast term do_composites
| Alias (_,s) -> pp_alias s
| Obj (_,obj) -> CicNotationPp.pp_obj obj
| Default (_,what,uris) ->
- sprintf "default \"%s\" %s" what
- (String.concat " " (List.map UriManager.string_of_uri uris))
+ pp_default what uris
| Interpretation (_, dsc, (symbol, arg_patterns), cic_appl_pattern) ->
- sprintf "interpretation \"%s\" '%s %s = %s"
- dsc symbol
- (String.concat " " (List.map pp_argument_pattern arg_patterns))
- (CicNotationPp.pp_cic_appl_pattern cic_appl_pattern)
+ pp_interpretation dsc symbol arg_patterns cic_appl_pattern
| Notation (_, dir_opt, l1_pattern, assoc, prec, l2_pattern) ->
- sprintf "notation %s\"%s\" %s %s for %s"
- (pp_dir_opt dir_opt)
- (pp_l1_pattern l1_pattern)
- (pp_associativity assoc)
- (pp_precedence prec)
- (pp_l2_pattern l2_pattern)
+ pp_notation dir_opt l1_pattern assoc prec l2_pattern
| Render _
| Dump _ -> assert false (* ZACK: debugging *)
| Executable (_, ex) -> pp_executable ex
| Comment (_, c) -> pp_comment c
+
+
let pp_cic_command = function
| Include (_,path) -> "include " ^ path
| Qed _ -> "qed"
| Drop _ -> "drop"
- | Coercion (_,term,_add_composites) ->
- sprintf "coercion %s" (CicPp.ppterm term)
- | Set _
- | Alias _
- | Default _
- | Render _
- | Dump _
- | Interpretation _
- | Notation _
- | Obj _ -> assert false (* not implemented *)
+ | Coercion (_,term, do_composites) ->
+ pp_coercion_cic term do_composites
+ | Obj (_,obj) -> CicPp.ppobj obj
+ | Set _-> assert false (* not implemented *)
+ | Alias (_, alias) -> pp_alias alias
+ | Default (_,what,uris) ->
+ pp_default what uris
+ | Render _ -> assert false (* not implemented *)
+ | Dump _ -> assert false (* not implemented *)
+ | Interpretation (_, dsc, (symbol, arg_patterns), cic_appl_pattern) ->
+ pp_interpretation dsc symbol arg_patterns cic_appl_pattern
+ | Notation (_, dir_opt, l1_pattern, assoc, prec, l2_pattern) ->
+ pp_notation dir_opt l1_pattern assoc prec l2_pattern
let pp_dependency = function
| IncludeDep str -> "include \"" ^ str ^ "\""