strange code in lexer

Anthony Clayden <[email protected]> Sat, 06 Oct 2018 18:34:39 +1300
Newsgroups gmane.comp.lang.haskell.hugs.bugs
Message-ID <[email protected]>
UmVhZGluZyBpbnB1dC5jIChhcyB5b3UgZG8gCi0gSSB3YXMgbW9kaWZ5aW5nIHRvIGFsbG93IFRS
ZXggbGFiZWwgbmFtZXMgdG8gc3RhcnQKdXBwZXItY2FzZSksCgp0aGVyZSdzIHNvbWUgc3RyYW5n
ZSBjb2RlIGluIGxleGluZyBxdWFsaWZpZWQgbmFtZXMgLS0Kcm91dGluZSB5eWxleCgpOgoKICAg
IGlmIChpc0luKGMwLExBUkdFKSkgeyAgICAgICAgICAgICAgIC8qIExvb2sgZm9yCnF1YWxpZmll
ZCBuYW1lICAgICAgICAgKi8KCVRleHQgaXQgPSByZWFkSWRlbnQoKTsgICAgICAgICAgLyogTm8g
a2V5d29yZCBiZWdpbnMgd2l0aApMQVJHRSAuLi4qLwoJaWYgKGMwPT0nLicgJiYgaXNJbihjMSwo
U01BTEx8TEFSR0V8U1lNQk9MKSkpIHsKCSAgICBUZXh0IGl0MiA9IE5JTDsKbG9vcDoJICAgIHNr
aXAoKTsgICAgICAgICAgICAgICAgICAgICAvKiBTa2lwIHF1YWxpZnlpbmcgZG90CiAgICAgICAg
ICAgICovCgkgICAgaWYgKGlzSW4oYzAsU1lNQk9MKSkgeyAvKiBRdWFsaWZpZWQgb3BlcmF0b3Ig
Ki8KCQlpdDIgPSByZWFkT3BlcmF0b3IoKTsKCQlpZiAob3BUeXBlPT1DT05PUCkgewoJCSAgICB0
b3AoKSA9IHl5bHZhbCA9IG1rUUNvbk9wKGl0LGl0Mik7CgkJICAgIHJldHVybiBRQ09OT1A7CgkJ
fSBlbHNlIHsKCQkgICAgdG9wKCkgPSB5eWx2YWwgPSBta1FWYXJPcChpdCxpdDIpOwoJCSAgICBy
ZXR1cm4gUVZBUk9QOwoJCX0KCSAgICB9IGVsc2UgeyAgICAgICAgICAgICAgIC8qIFF1YWxpZmll
ZCBpZGVudGlmaWVyICovCgkJaXQyID0gcmVhZElkZW50KCk7CgkJaWYgKGlkZW50VHlwZT09Q09O
SUQpIHsKCQkgICAgdG9wKCkgPSB5eWx2YWwgPSBta1FDb24oaXQsaXQyKTsKICAgICAgICAgICAg
ICAgICAgICBpZiAoYzA9PScuJyAmJgppc0luKGMwLChTTUFMTHxMQVJHRXxTWU1CT0wpKSkgewog
ICAgICAgICAgICAgICAgICAgICAgICBpdCA9IG1rTmVzdGVkUXVhbCh5eWx2YWwpOwogICAgICAg
ICAgICAgICAgICAgICAgICBnb3RvIGxvb3A7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgICBy
ZXR1cm4gUUNPTklEOwoJCX0gZWxzZSB7CgkJICAgIHRvcCgpID0geXlsdmFsID0gbWtRVmFyKGl0
LGl0Mik7CgkJICAgIHJldHVybiBRVkFSSUQ7CgpBZnRlciB0aGUgZmlyc3QgcmVhZElkZW50KCAp
LCBsb29rIGZvciB0cmFpbGluZyAnLicgdGhlbgpsZXR0ZXIgb3Igc3ltYm9sLgppZSBjMCA9PSAn
LicgJiYgaXNJbihjMSwgLi4uKQoKSWYgYSBsZXR0ZXI7IHJlYWRJZGVudCggKSB0aGVuIGxvb2sg
YWdhaW4gZm9yIHRyYWlsaW5nICcuJwp0aGVuIGxldHRlciBvciBzeW1ib2wuCgpCdXQgdGhhdCBj
b2RlIGhhcyBjMCA9PSAnLicgJiYgaXNJbihjMCwgLi4uKQpUaGF0IG11c3QgYWx3YXlzIHJldHVy
biBGYWxzZSwgc3VyZWx5KD8pIFRlc3RpbmcgYzAgdHdpY2UuClRoZSBzZWNvbmQgYzAgc2hvdWxk
IGJlIGMxKD8pCgpJJ3ZlIHRyaWVkIGJyZWFraW5nIGl0IGJ5IHVzaW5nIGEgbW9kdWxlIG5hbWUg
NC1kb3RzLWRlZXAuCkJ1dCB0aGF0IHNlZW1lZCB0byB3b3JrLiAoUGVyaGFwcyB0aGUgeWFjYyBk
ZXRlY3RzIHNvbWV0aGluZwogYW5kIGdsdWVzIGl0IGJhY2sgdG9nZXRoZXI/IEknbSBmaW5kaW5n
IHRoYXQgaW1wZW5ldHJhYmxlLikKCkl0IGlmIGl0IGFpbid0IGJyb2tlLCBJJ20gdmVyeSBsb2F0
aGUgdG8gZml4IGl0LgoKCkJUVyBnb3R0YSBsb3ZlIHRoYXQgZ290byB0byBhIGxhYmVsIGNhbGxl
ZCBgbG9vcGAgOy0pCgpBbnRDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkh1Z3MtQnVncyBtYWlsaW5nIGxpc3QKSHVncy1CdWdzQGhhc2tlbGwub3JnCmh0
dHA6Ly9tYWlsLmhhc2tlbGwub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9odWdzLWJ1Z3MK