Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
;; dnc-0.el - my first attempt at implementing dnc abbreviations to
;; eepitch.

;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
;; Version:    2009jul31
;; Keywords:   e-scripts, Coq.
;;
;; Latest version: <http://angg.twu.net/COQ/dnc-0.el>
;;       htmlized: <http://angg.twu.net/COQ/dnc-0.el.html>
;;       See also: <http://angg.twu.net/eev-current/README.html>
;;            and: <http://angg.twu.net/eev-current/eev-langs.el.html>

;;
;;                                           [a>1]^2  [b>0]^1  [b>0]^1                    
;;                                           ----------------  ------- 
;;            [a<1]^2              [b=0]^1        ab>b          b>=1   
;;            -------              -------        ------------------   
;;              a=0                 ab=0               ab>1            
;;              ----    --------    -----             -----            
;;   a~=1       ab=0    b=0\/b>0    ab~=1             ab~=1            
;;  -------    -----    -----------------------------------            
;;  a<1\/a>1   ab~=1                ab~=1
;;  -------------------------------------
;;                     ab~=1
;;
(defun dnc-strings (str) (setq dnc-strings (ee-split str)))

(dnc-strings "[a<1]^2 [a>1]^2 [b=0]^1 [b>0]^1 a<1\\/a>1 a=0 ab=0 ab>1
              ab>b ab~=1 a~=1 b=0\\/b>0 b>=1")
           
(defun dnc-to-number (str)
  (let ((m (member str dnc-strings)))
    (if m (- (length dnc-strings) (length m)))))

(defun dnc-to-dncnnn (str)
  (let ((n (dnc-to-number str)))
    (if n (format "dnc%d" n))))

;; (dnc-to-number "[a>1]^2")
;; (dnc-to-dncnnn "[a>1]^2")
;; (defun dnc-expand1 (str) (format "<%s>" str))
(defun dnc-expand1 (str) (or (dnc-to-dncnnn str)
			     (error "Not in dnc-strings: %S" str)))

(defun dnc-expand (bigstr)
  (replace-regexp-in-string
   "\\([^ \t\n]+\\)"
   (lambda (str) (dnc-expand1 (substring str 1 -1)))
   bigstr
   'fixedcase))

;; (dnc-expand "fooa=0bar")
;; (dnc-expand "fooa=2bar")

;; (find-efunctiondescr 'replace-regexp-in-string)
;; (find-efunctiondescr 'match-string)
;; (find-elnode "Creating Strings")
;; (substring "abcdefg" 1 -1)
;; (find-efunction 'ee-aref)
;; (find-elnode "Index" "* member:")

;; (find-efunction 'eepitch-line)
;; (find-eev "eev-mini-steps.el" "eepitch-line")

(defun eepitch-line-orig (line)
  (save-selected-window
    (select-window (get-buffer-window eepitch-target-buffer))
    (insert line)                              ; "type" the line
    (call-interactively (key-binding "\r"))))  ; then do a RET

(defun eepitch-line (line)
  (eepitch-line-orig (dnc-expand line)))

;; (find-angg ".emacs" "eev-traffic-light-glyphs")
;; (find-efunction 'eev-math-glyphs-set)
;; (find-efunction 'eev-set-glyph)
;; (find-epalette my-palette)
;; (find-ecolor-links (ee-choosecolor "#6c1829"))

(eev-glyphs-set-face 'eev-glyph-dnc-open  "red"  nil)
(eev-glyphs-set-face 'eev-glyph-dnc-open  "red"  "#6c1829")
(eev-glyphs-set-face 'eev-glyph-dnc-close "gold" nil)
(eev-glyphs-set-face 'eev-glyph-dnc-close "magenta" nil)
(eev-glyphs-set-face 'eev-glyph-dnc-close "magenta" "#6c1829")
(eev-set-glyph ? ?< 'eev-glyph-dnc-open)
(eev-set-glyph ? ?> 'eev-glyph-dnc-close)


'("

# A test:

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
echo a=0-ab=0

")





;; Local Variables:
;; coding:               raw-text-unix
;; ee-anchor-format:     "«%s»"
;; End: