products/sources/formale sprachen/Coq/dev/tools image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: objects.el   Sprache: Unknown

Spracherkennung für: .el vermutete Sprache: CS {CS[75] Abap[105] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

(defun add-survive-module nil
  (interactive)
  (query-replace-regexp 
   "
\\([  ]*\\)\\(Summary\.\\)?survive_section"
   "
\\1\\2survive_module = false;
\\1\\2survive_section")
  )

(global-set-key [f2] 'add-survive-module)

; functions to change old style object declaration to new style

(defun repl-open nil
  (interactive)
  (query-replace-regexp 
   "open_function\\([ ]*\\)=\\([ ]*\\)cache_\\([a-zA-Z0-9'_]*\\)\\( *\\);" 
   "open_function\\1=\\2(fun i o -> if i=1 then cache_\\3 o)\\4;"
  )

(global-set-key [f6] 'repl-open)

(defun repl-load nil
  (interactive)
  (query-replace-regexp 
   "load_function\\([ ]*\\)=\\([ ]*\\)cache_\\([a-zA-Z0-9'_]*\\)\\( *\\);" 
   "load_function\\1=\\2(fun _ -> cache_\\3)\\4;"
  )

(global-set-key [f7] 'repl-load)

(defun repl-decl nil
  (interactive)
  (query-replace-regexp
   "\\(Libobject\.\\)?declare_object[
 ]*([  ]*\\(.*\\)[ 
 ]*,[  ]*
\\([  ]*\\){\\([  ]*\\)\\([^ ][^}]*\\)}[  ]*)"

   "\\1declare_object {(\\1default_object \\2) with
\\3 \\4\\5}")
;   "|$1=\\1|$2=\\2|$3=\\3|$4=\\4|")
)

(global-set-key [f9] 'repl-decl)

; eval the above and try f9 f6 f7 on the following:

let (inThing,outThing) =
  declare_object
    ("THING"
     { load_function = cache_thing;
       cache_function = cache_thing;
       open_function = cache_thing;
       export_function = (function x -> Some x)
     })


;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
; functions helping writing non-copying substitutions

(defun make-subst (name)
  (interactive "s")
  (defun f (l)
    (save-excursion
      (query-replace-regexp
       (concat "\\([a-zA-z_0-9]*\\)[ ]*:[ ]*" 
        (car l) 
        "\\([ ]*;\\|[
]*\}\\)")
       (concat "let \\1\' = " (cdr l) " " name "\\1 in"))
      )
    )
  (mapcar 'f '(("constr"."subst_mps subst"
        ("Coqast.t"."subst_ast subst"
        ("Coqast.t list"."list_smartmap (subst_ast subst)"
        ("'pat"."subst_pat subst"
        ("'pat unparsing_hunk"."subst_hunk subst_pat subst")
        ("'pat unparsing_hunk list"."list_smartmap (subst_hunk subst_pat subst)"
        ("'pat syntax_entry"."subst_syntax_entry subst_pat subst")
        ("'pat syntax_entry list"."list_smartmap (subst_syntax_entry subst_pat subst)"
        ("constr option"."option_smartmap (subst_mps subst)")
        ("constr list"."list_smartmap (subst_mps subst)")
        ("constr array"."array_smartmap (subst_mps subst)")
        ("constr_pattern"."subst_pattern subst")
        ("constr_pattern option"."option_smartmap (subst_pattern subst)")
        ("constr_pattern array"."array_smartmap (subst_pattern subst)")
        ("constr_pattern list"."list_smartmap (subst_pattern subst)")
        ("global_reference"."subst_global subst")
        ("extended_global_reference"."subst_ext subst")
        ("obj_typ"."subst_obj subst")
        )
   )
  )


(global-set-key [f2] 'make-subst)

(defun make-if (name)
  (interactive "s")
  (save-excursion
    (query-replace-regexp
     "\\([a-zA-z_0-9]*\\)[ ]*:[ ]*['a-zA-z_. ]*\\(;\\|[
]*\}\\)"
     (concat "&& \\1\' == " name "\\1")
     )
    )
  )

(global-set-key [f4] 'make-if)

(defun make-record nil
  (interactive)
  (save-excursion 
    (query-replace-regexp
     "\\([a-zA-z_0-9]*\\)[ ]*:[ ]*['a-zA-z_. ]*\\(;\\|[
]*\}\\)"
     (concat "\\1 = \\1\' ;")
     )
    )
  )

(global-set-key [f5] 'make-record)

(defun make-prim nil
  (interactive)
  (save-excursion (query-replace-regexp "\\<[a-zA-Z'_0-9]*\\>" "\\&'"))
  )

(global-set-key [f6] 'make-prim)


; eval the above, yank the text below and do 
; paste f2 morph.
; paste f4 morph.
; paste f5

      lem : constr;
      profil : bool list;
      arg_types : constr list;
      lem2 : constr option                                                      }


; and you almost get   Setoid_replace.subst_morph  :)

; and now f5 on this:

   (ref,(c1,c2))




[ Dauer der Verarbeitung: 0.61 Sekunden  ]