literal haskell mode (nice :)

Jorge Adriano jadrian@mat.uc.pt
Fri, 22 Mar 2002 23:27:38 +0000


--------------Boundary-00=_2IEESQTM33GKR2SJKKL2
Content-Type: text/plain;
  charset="iso-8859-15"
Content-Transfer-Encoding: 8bit

I got some tips from some people at #xemacs in openprojects.org and cam up 
with the file in attachment. I know nothing about e-lisp so beware!!

I just have one major problem now. I wanted it to load x-symbol instead of 
just LaTeX mode (and x-symbol-fontify after loading the mode). If anyone can 
do that I'd be really gratefull :-)

J.A.
P.S.: put the attached file in the directory wher you have the ".el" and add 
to you ~/.emacs (or ~/.xemacs/init.el), (require 'two-mode-mode).

(I think :)




--------------Boundary-00=_2IEESQTM33GKR2SJKKL2
Content-Type: text/plain;
  charset="iso-8859-15";
  name="two-mode-mode.el"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="two-mode-mode.el"

OzsgdHdvLW1vZGUtbW9kZS5lbCAtLSBzd2l0Y2hlcyBiZXR3ZWVuIHRjbCBhbmQgc2dtbChodG1s
KSBtb2Rlcwo7OyAkSWQ6IHR3by1tb2RlLW1vZGUuZWwsdiAxLjMgMjAwMS8xMi8xMiAxNjoxODo1
MyBkYXZpZHcgRXhwICQKCjs7IHR3by1tb2RlLW1vZGUuZWwgaXMgQ29weXJpZ2h0IERhdmlkIFdl
bHRvbiA8ZGF2aWR3QGRlZGFzeXMuY29tPgo7OyAxOTk5LCAyMDAwLCAyMDAxCgo7OyB0d28tbW9k
ZS1tb2RlLmVsIG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNo
ZQo7OyBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMQoKOzsgQXMgSSdtIHN1cmUgaXMgcGFp
bmZ1bGx5IG9idmlvdXMsIEkgZG9uJ3Qga25vdyBtdWNoIGFib3V0IGVsaXNwLAo7OyBidXQgSSB0
aG91Z2h0IGl0IHdvdWxkIGJlIGNvb2wgdG8gZG8gdGhpcyBtb2RlLCBmb3IgbW9kX2R0Y2wuICBT
bwo7OyBpZiB5b3UgaGF2ZSBhbnkgY29tbWVudHMgb3Igc3VnZ2VzdGlvbnMsIHBsZWFzZSBlbWFp
bCBtZSEKCjs7IFRoZXNlIHNhbWUgY29uY2VwdHMgY291bGQgYmUgdXNlZCB0byBkbyBhIG51bWJl
ciBvZiBuZWF0IDItbW9kZQo7OyBtb2RlcywgZm9yIHRoaW5ncyBsaWtlIFBIUCwgb3IgYW55dGhp
bmcgZWxzZSB3aGVyZSB5b3UgaGF2ZSBhCjs7IGNvdXBsZSBvZiBtb2RlcyB5b3UnZCBsaWtlIHRv
IHVzZS4KCjs7IFVzZSBvZiAncHNnbWwtbW9kZScgaXMgaGlnaGx5IHJlY29tbWVuZGVkLiAgSXQg
aXMsIG9mIGNvdXJzZSwgYQo7OyBwYXJ0IG9mIERlYmlhbiBHTlUvTGludXguCgo7OyBNb2RpZmll
ZCBieSBNYXJjbyBQYW50YWxlb25pIDxwYW50YUBlbGFzdGljd29ybGQub3JnPgo7OyB0byBhbGxv
dyBleGVjdXRpb24gb2YgYW4gaG9vayBvbiBtb2RlIHN3aXRjaGluZy4KOzsgQWxzbyBhZGRlZCBh
IHN0YW5kYXJkIG1vZGUgaG9vayBhbmQgc29tZSBkb2N1bWVudGF0aW9uIHN0cmluZ3MuCgo7OyBN
b2RpZmllZCBieSBKb3JnZSBBZHJpYW5vIDxqYWRyaWFuQG1hdC51Yy5wdD4KOzsgdG8gd29yayB3
aXRoIExhVGVYIGFuZCBMaXRlcmF0ZSBIYXNrZWxsIG1vZGVzIGluc3RlYWQgb2YgSFRNTC9QSFAK
OzsgV0FSTklORzogSSBkb24ndCByZWFsbHkga25vdyB3aGF0IEknbSBkb2luZyBoZXJlLi4uIDot
KQo7OyBjaGFuZ2VzOiAxLiBjaGFuZ2VkICI8PyIgdG8gIlxcYmVnaW57Y29kZX0iIChhbmQgc2lt
aWxhciB3aXRoICI+PyIKOzsgICAgICAgICAgMi4gY2hhbmdlZCAodHVybi1vbi1mb250LWxvY2st
aWYtZW5hYmxlZCkKOzsgICAgICAgICAgICAgdG8gICAgICAoZm9udC1sb2NrLWRlZmF1bHQtZm9u
dGlmeS1idWZmZXIpICAgIAo7OyAgICAgICAgICAgICB0aGUgMXN0IG9uZSBjYXVzZWQgYW4gZXJy
b3IgbXNnIHdpdGggbXkgeGVtYWNzIHZlcnNpb24KOzsgICAgICAgICAgICAgSSB0aG91Z2h0IHRo
YXQgd2FzIHRoZSBhcHByb3ByaWF0ZSB4ZW1hY3MgY29tbWFuZAo7Owo7OyBJZiBhbnlvbmUgY2Fu
IGNoYW5nZSB0aGlzIGluIG9yZGVyIHRvIGxvYWQgeC1zeW1ib2wgYW5kIGZvbnRpZnkgaXQKOzsg
aW5zdGVhZCBvZiBqdXN0IExhVGVYIG1vZGUsIHBsZWFzZSBzZW5kIHRoZSBwYXRjaCB0byBtZSA6
LSkKCgo7OyBjb25maWd1cmUgdGhlc2U6CihkZWZ2YXIgdHdvLW1vZGUtbG1hdGNoICJcXGJlZ2lu
e2NvZGV9IgogICJPcGVuIHRhZyBmb3IgYHNlY29uZCcgbW9kZS4iKQooZGVmdmFyIHR3by1tb2Rl
LXJtYXRjaCAiXFxlbmR7Y29kZX0iCiAgIkNsb3NlIHRhZyBmb3IgYHNlY29uZCcgbW9kZS4iKQoK
KGRlZnZhciBkZWZhdWx0LW1vZGUgKGxpc3QgJ0xhVGVYLW1vZGUgIkxhVGVYIikKICAiRGVmYXVs
dCBtb2RlLiIpCihkZWZ2YXIgc2Vjb25kLW1vZGUgIChsaXN0ICdsaXRlcmF0ZS1oYXNrZWxsLW1v
ZGUgIkhhc2tlbGwiKQogICJTZWNvbmQgbW9kZTogbW9kZSB1c2VkIGluc2lkZSBzcGVjaWFsIHRh
Z3MuIikKOzsgLS0tLS0tLS0tLS0tLS0tLQoKKGRlZnZhciB0d28tbW9kZS11cGRhdGUgMCkKKGRl
ZnZhciB0d28tbW9kZS1tb2RlLWlkbGUtdGltZXIgbmlsKQooZGVmdmFyIHR3by1tb2RlLWJvb2wg
bmlsKQooZGVmdmFyIHR3by1tb2RlLW1vZGUtZGVsYXkgKC8gKGZsb2F0IDEpIChmbG9hdCA4KSkp
Cgo7OyBUd28gbW9kZSBob29rCihkZWZ2YXIgdHdvLW1vZGUtaG9vayBuaWwKICAiKkhvb2sgY2Fs
bGVkIGJ5IGB0d28tbW9kZScuIikKKHNldHEgdHdvLW1vZGUtaG9vayBuaWwpCgo7OyBNb2RlIHN3
aXRjaGluZyBob29rCihkZWZ2YXIgdHdvLW1vZGUtc3dpdGNoLWhvb2sgbmlsCiAgIipIb29rIGNh
bGxlZCB1cG9uIG1vZGUgc3dpdGNoaW5nLiIpCihzZXRxIHR3by1tb2RlLXN3aXRjaC1ob29rIG5p
bCkKCihkZWZ1biB0d28tbW9kZS1tb2RlLXNldHVwICgpCiAgKG1ha2UtbG9jYWwtaG9vayAncG9z
dC1jb21tYW5kLWhvb2spCiAgKGFkZC1ob29rICdwb3N0LWNvbW1hbmQtaG9vayAndHdvLW1vZGUt
bW9kZS1uZWVkLXVwZGF0ZSBuaWwgdCkKICAobWFrZS1sb2NhbC12YXJpYWJsZSAnbWlub3ItbW9k
ZS1hbGlzdCkKICAobWFrZS1sb2NhbC12YXJpYWJsZSAndHdvLW1vZGUtYm9vbCkKICAoc2V0cSB0
d28tbW9kZS1ib29sIHQpCiAgKHdoZW4gdHdvLW1vZGUtbW9kZS1pZGxlLXRpbWVyCiAgICAoY2Fu
Y2VsLXRpbWVyIHR3by1tb2RlLW1vZGUtaWRsZS10aW1lcikpCiAgKHNldHEgdHdvLW1vZGUtbW9k
ZS1pZGxlLXRpbWVyIChydW4td2l0aC1pZGxlLXRpbWVyIHR3by1tb2RlLW1vZGUtZGVsYXkgdCAn
dHdvLW1vZGUtbW9kZS11cGRhdGUtbW9kZSkpCiAgKG9yIChhc3NxICd0d28tbW9kZS1ib29sIG1p
bm9yLW1vZGUtYWxpc3QpCiAgICAgIChzZXRxIG1pbm9yLW1vZGUtYWxpc3QKCSAgICAoY29ucyAn
KHR3by1tb2RlLWJvb2wgIiB0d28tbW9kZSIpIG1pbm9yLW1vZGUtYWxpc3QpKSkpCgooZGVmdW4g
dHdvLW1vZGUtbW9kZS1uZWVkLXVwZGF0ZSAoKQogIChzZXRxIHR3by1tb2RlLXVwZGF0ZSAxKSkK
CihkZWZ1biB0d28tbW9kZS1jaGFuZ2UtbW9kZSAodG8tbW9kZSkKICAoaWYgKHN0cmluZz0gdG8t
bW9kZSBtb2RlLW5hbWUpCiAgICAgIHQKICAgIChwcm9nbgogICAgICAoc2F2ZS1leGN1cnNpb24K
CShpZiAoc3RyaW5nPSB0by1tb2RlIChjYWRyIHNlY29uZC1tb2RlKSkKCSAgICAoZnVuY2FsbCAo
Y2FyIHNlY29uZC1tb2RlKSkKCShmdW5jYWxsIChjYXIgZGVmYXVsdC1tb2RlKSkpKQogICAgICAo
dHdvLW1vZGUtbW9kZS1zZXR1cCkKICAgICAgKGlmIHR3by1tb2RlLXN3aXRjaC1ob29rCgkgIChy
dW4taG9va3MgJ3R3by1tb2RlLXN3aXRjaC1ob29rKSkKICAgICAgKGlmIChlcSBmb250LWxvY2st
bW9kZSB0KQoJICAoZm9udC1sb2NrLWZvbnRpZnktYnVmZmVyKSkKICAgICAgKGZvbnQtbG9jay1k
ZWZhdWx0LWZvbnRpZnktYnVmZmVyKSkpKQoKKGRlZnVuIHR3by1tb2RlLW1vZGUtdXBkYXRlLW1v
ZGUgKCkKICAod2hlbiAoYW5kIHR3by1tb2RlLWJvb2wgdHdvLW1vZGUtdXBkYXRlKQogICAgKHNl
dHEgdHdvLW1vZGUtdXBkYXRlIDApCiAgICAobGV0ICgobG0gLTEpCgkgIChybSAtMSkpCiAgICAg
IChzYXZlLWV4Y3Vyc2lvbgoJKGlmIChzZWFyY2gtYmFja3dhcmQgdHdvLW1vZGUtbG1hdGNoIG5p
bCB0KQoJICAgIChzZXRxIGxtIChwb2ludCkpCgkgIChzZXRxIGxtIC0xKSkpCiAgICAgIChzYXZl
LWV4Y3Vyc2lvbgoJKGlmIChzZWFyY2gtYmFja3dhcmQgdHdvLW1vZGUtcm1hdGNoIG5pbCB0KQoJ
ICAgIChzZXRxIHJtIChwb2ludCkpCgkgIChzZXRxIHJtIC0xKSkpCiAgICAgIChpZiAoYW5kICg9
IGxtIC0xKSAoPSBybSAtMSkpCgkgICh0d28tbW9kZS1jaGFuZ2UtbW9kZSAoY2FkciBkZWZhdWx0
LW1vZGUpKQoJKGlmICg+PSBsbSBybSkKCSAgICAodHdvLW1vZGUtY2hhbmdlLW1vZGUgKGNhZHIg
c2Vjb25kLW1vZGUpKQoJICAodHdvLW1vZGUtY2hhbmdlLW1vZGUgKGNhZHIgZGVmYXVsdC1tb2Rl
KSkpKSkpKQoKKGRlZnVuIHR3by1tb2RlLW1vZGUgKCkKICAiVHVybiBvbiB0d28tbW9kZS1tb2Rl
IgogIChpbnRlcmFjdGl2ZSkKICAoZnVuY2FsbCAoY2FyIGRlZmF1bHQtbW9kZSkpCiAgKHR3by1t
b2RlLW1vZGUtc2V0dXApCiAgKGlmIHR3by1tb2RlLWhvb2sKICAgICAocnVuLWhvb2tzICd0d28t
bW9kZS1ob29rKSkpCgoocHJvdmlkZSAndHdvLW1vZGUtbW9kZSkKCg==

--------------Boundary-00=_2IEESQTM33GKR2SJKKL2--