;; ID: $Id$ ;; Author: David von Oheimb ;; Copyright 1998 Technische Universitaet Muenchen ;; token language "Isabelle Symbols" for package x-symbol ;; ;; NB: Part of Proof General distribution. ;; (defvar x-symbol-isabelle-required-fonts nil) ;; FIXME da: these next two are also set in proof-x-symbol.el, but ;; it's handy to use this file away from PG. In future could ;; fix things so just (require 'proof-x-symbol) would be enough ;; here. (defvar x-symbol-isabelle-name "Isabelle Symbol") (defvar x-symbol-isabelle-modeline-name "isa") (defvar x-symbol-isabelle-header-groups-alist nil) ;'(("Operator" bigop operator) ; ("Relation" relation) ; ("Arrow, Punctuation" arrow triangle shape ; white line dots punctuation quote parenthesis) ; ("Symbol" symbol currency mathletter setsymbol) ; ("Greek Letter" greek greek1) ; ("Acute, Grave" acute grave)) ; "*If non-nil, used in isasym specific grid/menu." (defvar x-symbol-isabelle-class-alist '((VALID "Isabelle Symbol" (x-symbol-info-face)) (INVALID "no Isabelle Symbol" (red x-symbol-info-face)))) (defvar x-symbol-isabelle-class-face-alist nil) (defvar x-symbol-isabelle-electric-ignore "[:'][A-Za-z]\\|<=\\|\\[\\[\\|\\]\\]\\|~=") (defvar x-symbol-isabelle-font-lock-keywords nil) (defvar x-symbol-isabelle-master-directory 'ignore) (defvar x-symbol-isabelle-image-searchpath '("./")) (defvar x-symbol-isabelle-image-cached-dirs '("images/" "pictures/")) (defvar x-symbol-isabelle-image-file-truename-alist nil) (defvar x-symbol-isabelle-image-keywords nil) (defvar x-symbol-isabelle-case-insensitive nil) ;(defvar x-symbol-isabelle-token-shape '(?\\ "\\\\\\<[A-Za-z][A-Za-z0-9_']*>\\a'" . "[A-Za-z]")) (defvar x-symbol-isabelle-token-shape nil) (defvar x-symbol-isabelle-exec-specs '(nil ("\\`\\\\<[A-Za-z][A-Za-z0-9_']*>\\'" . "\\\\<[A-Za-z][A-Za-z0-9_']*>"))) (defvar x-symbol-isabelle-input-token-ignore nil) (defun x-symbol-isabelle-default-token-list (tokens) tokens) (defvar x-symbol-isabelle-token-list 'x-symbol-isabelle-default-token-list) (defvar x-symbol-isabelle-symbol-table ; symbols (isabelle font) '((visiblespace "\\") (Gamma "\\") (Delta "\\") (Theta "\\") (Lambda "\\") (Pi "\\") (Sigma "\\") (Phi "\\") (Psi "\\") (Omega "\\") (alpha "\\") (beta "\\") (gamma "\\") (delta "\\") (epsilon1 "\\") (zeta "\\") (eta "\\") (theta "\\") (kappa1 "\\") (lambda "\\") (mu "\\") (nu "\\") (xi "\\") (pi "\\") (rho1 "\\") (sigma "\\") (tau "\\") (phi1 "\\") (chi "\\") (psi "\\") (omega "\\") (notsign "\\") (logicaland "\\") (logicalor "\\") (universal1 "\\") (existential1 "\\") (biglogicaland "\\") (ceilingleft "\\") (ceilingright "\\") (floorleft "\\") (floorright "\\") (bardash "\\") (bardashdbl "\\") (semanticsleft "\\") (semanticsright "\\") (periodcentered "\\") (element "\\") (reflexsubset "\\") (intersection "\\") (union "\\") (bigintersection "\\") (bigunion "\\") (sqintersection "\\") (squnion "\\") (bigsqintersection "\\") (bigsqunion "\\") (perpendicular "\\") (dotequal "\\") (equivalence "\\") (notequal "\\") (propersqsubset "\\") (reflexsqsubset "\\") (properprec "\\") (reflexprec "\\") (propersucc "\\") (approxequal "\\") (similar "\\") (simequal "\\") (lessequal "\\") (coloncolon "\\") (arrowleft "\\") (endash "\\") (arrowright "\\") (arrowdblleft "\\") ; (nil "\\") (arrowdblright "\\") (frown "\\") (mapsto "\\") (leadsto "\\") (arrowup "\\") (arrowdown "\\") (notelement "\\") (multiply "\\") (circleplus "\\") (circleminus "\\") (circlemultiply "\\") (circleslash "\\") (propersubset "\\") (infinity "\\") (box "\\") (lozenge1 "\\") (circ "\\") (bullet "\\") (bardbl "\\") (radical "\\") (copyright "\\"))) (defvar x-symbol-isabelle-xsymbol-table ; xsymbols '((Xi "\\") (Upsilon1 "\\") (iota "\\") (upsilon "\\") (plusminus "\\") (division "\\
") (longarrowright "\\") (longarrowleft "\\") (longarrowboth "\\") (longarrowdblright "\\") (longarrowdblleft "\\") (longarrowdblboth "\\") (brokenbar "\\") (hyphen "\\") (macron "\\") (exclamdown "\\") (questiondown "\\") (guillemotleft "\\") (guillemotright "\\") (degree "\\") (onesuperior "\\") (onequarter "\\") (twosuperior "\\") (onehalf "\\") (threesuperior "\\") (threequarters "\\") (paragraph "\\") (registered "\\") (ordfeminine "\\") (ordmasculine "\\") (section "\\
") (sterling "\\") (yen "\\") (cent "\\") (currency "\\") (braceleft2 "\\") (braceright2 "\\") (top "\\") (congruent "\\") (club "\\") (diamond "\\") (heart "\\") (spade "\\") (arrowboth "\\") (greaterequal "\\") (proportional "\\") (partialdiff "\\") (ellipsis "\\") (aleph "\\") (Ifraktur "\\") (Rfraktur "\\") (weierstrass "\\") (emptyset "\\") (angle "\\") (gradient "\\") (product "\\") (arrowdblboth "\\") (arrowdblup "\\") (arrowdbldown "\\") (angleleft "\\") (angleright "\\") (summation "\\") (integral "\\") (dagger "\\") (sharp "\\") (star "\\") (smltriangleright "\\") (triangleleft "\\") (triangle "\\") (triangleright "\\") (trianglelefteq "\\") (trianglerighteq "\\") (smltriangleleft "\\") (natural "\\") (flat "\\") (amalg "\\") (Mho "\\") (arrowupdown "\\") (longmapsto "\\") (arrowdblupdown "\\") (hookleftarrow "\\") (hookrightarrow "\\") (rightleftharpoons "\\") (leftharpoondown "\\") (rightharpoondown "\\") (leftharpoonup "\\") (rightharpoonup "\\") (asym "\\") (minusplus "\\") (bowtie "\\") (centraldots "\\") (circledot "\\") (propersuperset "\\") (reflexsuperset "\\") (propersqsuperset "\\") (reflexsqsuperset "\\") (lessless "\\") (greatergreater "\\") (unionplus "\\") (smile "\\") (reflexsucc "\\") (dashbar "\\") (biglogicalor "\\") (bigunionplus "\\") (daggerdbl "\\") (bigbowtie "\\") (booleans "\\") (complexnums "\\") (natnums "\\") (rationalnums "\\") (realnums "\\") (integers "\\") (lesssim "\\") (greatersim "\\") (lessapprox "\\") (greaterapprox "\\") (definedas "\\"))) (defvar x-symbol-isabelle-user-table nil) (defun x-symbol-isabelle-prepare-table (table) (let* ((is-isar (eq proof-assistant-symbol 'isar)) (prfx1 (if is-isar "" "\\")) (prfx2 (if is-isar "\\" ""))) (mapcar (lambda (entry) (list (car entry) '() (concat prfx1 (cadr entry)) (concat prfx2 (cadr entry)))) table))) (defvar x-symbol-isabelle-table (x-symbol-isabelle-prepare-table (append x-symbol-isabelle-user-table x-symbol-isabelle-symbol-table x-symbol-isabelle-xsymbol-table))) ;;;=========================================================================== ;;; Internal ;;;=========================================================================== (defvar x-symbol-isabelle-menu-alist nil "Internal. Alist used for Isasym specific menu.") (defvar x-symbol-isabelle-grid-alist nil "Internal. Alist used for Isasym specific grid.") (defvar x-symbol-isabelle-decode-atree nil "Internal. Atree used by `x-symbol-token-input'.") (defvar x-symbol-isabelle-decode-alist nil "Internal. Alist used for decoding of Isasym macros.") (defvar x-symbol-isabelle-encode-alist nil "Internal. Alist used for encoding to Isasym macros.") (defvar x-symbol-isabelle-nomule-decode-exec nil "Internal. File name of Isasym decode executable.") (defvar x-symbol-isabelle-nomule-encode-exec nil "Internal. File name of Isasym encode executable.") ;;;=========================================================================== ;;; useful key bindings ;;;=========================================================================== ;; FIXME: these break some standard bindings, and should only be set ;; for proof shell, script (or minibuffer) modes. ;(global-set-key [(meta l)] 'x-symbol-INSERT-lambda) ;(global-set-key [(meta n)] 'x-symbol-INSERT-notsign) ;(global-set-key [(meta a)] 'x-symbol-INSERT-logicaland) ;(global-set-key [(meta o)] 'x-symbol-INSERT-logicalor) ;(global-set-key [(meta f)] 'x-symbol-INSERT-universal1) ;(global-set-key [(meta t)] 'x-symbol-INSERT-existential1) ;(global-set-key [(meta A)] 'x-symbol-INSERT-biglogicaland) ;(global-set-key [(meta e)] 'x-symbol-INSERT-equivalence) ;(global-set-key [(meta u)] 'x-symbol-INSERT-notequal) ;(global-set-key [(meta m)] 'x-symbol-INSERT-arrowdblright) ;(global-set-key [(meta i)] 'x-symbol-INSERT-longarrowright) (provide 'x-symbol-isabelle)