[antlr-interest] is this a bug?

=?gb2312?B?1uzV/ca9?= z07165864809 at 163.com
Tue Feb 28 19:44:56 PST 2006


dGhlIGZvbGxvd2luZyBncmFtbWVyIGZpbGU6DQoNCm9wdGlvbnMgew0KCWxhbmd1YWdlID0gIkNw
cCI7DQp9DQpjbGFzcyBNQ1BQTGV4ZXIgZXh0ZW5kcyBMZXhlcjsNCm9wdGlvbnMNCnsNCglrID0g
MzsJLy9MTCgzKc7Et6gNCn0NCg0KLy8gstnX97f7Og0KQVNTSUdORVFVQUwgICAgCTogJz0nIDsN
CkNPTE9OICAgICAgICAgICAJOiAnOicgOw0KQ09NTUEgICAgICAgICAgCTogJywnIDsNClFVRVNU
SU9OTUFSSyAgICA6ICc/JyA7DQpTRU1JQ09MT04gICAgICAgCTogJzsnIDsNClBPSU5URVJUTyAg
ICAgICAJOiAiLT4iIDsNCi8vILXjus3KocLUusXT62Zsb2F0wODQzbXEyv3X1rPlzbujrMv50tS2
vLfFtb3K/dfWwO/D5silDQovLyBET1QJCTonLicgOw0KLy8gRUxMSVBTSVMJOiAiLi4uIiA7DQoN
CkxQQVJFTiAgICAgICAgICAJOiAnKCcgOw0KUlBBUkVOICAgICAgICAgIAk6ICcpJyA7DQpMU1FV
QVJFICAgICAgICAJOiAnWycgOw0KUlNRVUFSRSAgICAgICAgIAk6ICddJyA7DQpMQ1VSTFkgICAg
ICAgICAgCTogJ3snIDsNClJDVVJMWSAgICAgICAgIAk6ICd9JyA7DQoNCkVRVUFMICAgICAgICAg
ICAJOiAiPT0iIDsNCk5PVEVRVUFMICAgICAgICAJOiAiIT0iIDsNCkxFU1NUSEFOT1JFUVVBTFRP
ICAgICAJOiAiPD0iIDsNCkxFU1NUSEFOICAgICAgICAgICAgICAJOiAiPCIgOw0KR1JFQVRFUlRI
QU5PUkVRVUFMVE8gCTogIj49IiA7DQpHUkVBVEVSVEhBTiAgICAgICAgICAgCTogIj4iIDsNCg0K
RElWSURFICAgICAgICAgIAk6ICcvJyA7DQpESVZJREVFUVVBTCAgICAgCTogIi89IiA7DQpQTFVT
ICAgICAgICAgICAgCTogJysnIDsNClBMVVNFUVVBTCAgICAgICAJOiAiKz0iIDsNClBMVVNQTFVT
ICAgICAgICAJOiAiKysiIDsNCk1JTlVTICAgICAgICAgICAJOiAnLScgOw0KTUlOVVNFUVVBTCAg
ICAgIAk6ICItPSIgOw0KTUlOVVNNSU5VUyAgICAgIAk6ICItLSIgOw0KU1RBUiAgICAgICAgICAg
IAk6ICcqJyA7DQpUSU1FU0VRVUFMICAgICAgCTogIio9IiA7DQpNT0QgICAgICAgICAgICAJOiAn
JScgOw0KTU9ERVFVQUwgICAgICAgIAk6ICIlPSIgOw0KU0hJRlRSSUdIVCAgICAgIAk6ICI+PiIg
Ow0KU0hJRlRSSUdIVEVRVUFMCTogIj4+PSIgOw0KU0hJRlRMRUZUICAgICAgIAk6ICI8PCIgOw0K
U0hJRlRMRUZURVFVQUwgIAk6ICI8PD0iIDsNCg0KQU5EICAgICAgICAgICAgCTogIiYmIiA7DQpO
T1QgICAgICAgICAgICAJOiAnIScgOw0KT1IJCTogInx8IiA7DQoNCkFNUEVSU0FORCAgICAgICAJ
OiAnJicgOw0KQklUV0lTRUFOREVRVUFMIDogIiY9IiA7DQpUSUxERSAgICAgICAgICAgCTogJ34n
IDsNCkJJVFdJU0VPUiAgICAgICAJOiAnfCcgOw0KQklUV0lTRU9SRVFVQUwgIDogInw9IiA7DQpC
SVRXSVNFWE9SICAgICAgCTogJ14nIDsNCkJJVFdJU0VYT1JFUVVBTCA6ICJePSIgOw0KDQpQT0lO
VEVSVE9NQlIgICAgCTogIi0+KiIgOw0KRE9UTUJSICAgICAgICAgIAk6ICIuKiIgIDsNCg0KU0NP
UEUgICAgICAgICAgIAk6ICI6OiIgIDsNCg0KV2hpdGVzcGFjZQkvL7/VsNcsdmM3LjG1xGZzdHJl
YW26w8/xsrvE3Lm7tcO1vSJcciKjrNa709AnXG4nDQoJOg0KCQkgKCcgJ3wnXHQnfCdcZicgfCAo
J1xyJydcbicpfCgnXHInKXwoJ1xuJyl8ICdcXCcnXHInJ1xuJykge190dHlwZSA9IAlBTlRMUl9V
U0VfTkFNRVNQQUNFKGFudGxyKVRva2VuLlNLSVA7fQ0KCTsNCkNvbW1lbnQgIAkvL9K7ts7XosrN
DQoJOgkNCgkJIi8qIiAoIHtMQSgyKSAhPSAnLyd9PyAnKicgIHwJficqJyApKiAiKi8ie190dHlw
ZSA9IEFOVExSX1VTRV9OQU1FU1BBQ0UoYW50bHIpVG9rZW4uU0tJUDt9DQoJOw0KQ1BQQ29tbWVu
dAkvL9K70NDXosrNDQoJOgkNCgkJIi8vIiAofignXG4nIHwgJ1xyJykpKiBFbmRPZkxpbmUJe190
dHlwZSA9CUFOVExSX1VTRV9OQU1FU1BBQ0UoYW50bHIpIFRva2VuLlNLSVA7fSANCgk7DQpwcm90
ZWN0ZWQgIA0KU3BhY2UJCS8vv9W48Q0KCToJKCcgJ3wnXHQnfCdcZicpCTsNCi8vIExpdGVyYWxz
Og0KQ2hhckxpdGVyYWwJLy/X1rf7s6PBvw0KCToJJ1wnJyAoRXNjYXBlIHwgfignXCcnKSkgJ1wn
JyA7DQpTdHJpbmdMaXRlcmFsCS8v19a3+7Sus6PBv6Osv8nS1M6qv9UNCgk6CQ0KCQknIicgKCBF
c2NhcGUgfAkgKAkiXFxcclxuIiApCXwgfignIid8J1xyJ3wnXG4nfCdcXCcpKSoJJyInDQoJOw0K
cHJvdGVjdGVkDQpFbmRPZkxpbmUJLy/Su9DQveHK+KOsTWljcm9zb2Z0IMq508MiXHJcbiKjrLu5
09DKudPDJ1xyJyhNQUMpus0nXG4nKFVuaXgptcShow0KCToJDQoJCSJcclxuIiAgLy8gTVMNCgk7
DQpwcm90ZWN0ZWQNCkVzY2FwZSAgCQkvL9eq0uW3+w0KCToJDQoJCSdcXCcNCgkJKCBvcHRpb25z
e3dhcm5XaGVuRm9sbG93QW1iaWcgPSBmYWxzZTt9Og0KCQkgICAgJ2EnIHwgJ2InCXwgJ2YnfCAn
bid8ICdyJ3wgJ3QnfCAndid8ICciJ3wgJ1wnJ3wgJ1xcJ3wgJz8nDQoJCXwgKCcwJy4uJzMnKSAo
T2N0RGlnaXQoT2N0RGlnaXQpPyApPwkvLzi9+Na1yv2jrDEtM867DQoJCXwgKCc0Jy4uJzcnKSAo
T2N0RGlnaXQpPwkJCS8vOL341rXK/aOsMS0yzrsNCgkJfCAneCcgKEhleERpZ2l0KSsJCQkJLy8x
Nr341rXK/aOszrvK/cO709DP3tbGDQoJCSkNCgk7DQovLyBOdW1lcmljIENvbnN0YW50czogDQov
LyDV+8r9oaK4obXjs6PBvw0KcHJvdGVjdGVkDQpEaWdpdA0KCToJCScwJy4uJzknCTsNCnByb3Rl
Y3RlZAkNCk9jdERpZ2l0DQoJOgkJJzAnLi4nNycJOw0KcHJvdGVjdGVkCQ0KSGV4RGlnaXQJDQoJ
OgkJRGlnaXR8J2EnLi4nZid8J0EnLi4nRicJOw0KcHJvdGVjdGVkDQpEZWNpbWFsDQoJOgkJKCcw
Jy4uJzknKSsJOw0KcHJvdGVjdGVkDQpMb25nU3VmZml4DQoJOgknbCcgfCAnTCcJOw0KcHJvdGVj
dGVkDQpVbnNpZ25lZFN1ZmZpeA0KCToJJ3UnIHwgJ1UnCTsNCnByb3RlY3RlZA0KRmxvYXRTdWZm
aXgNCgk6CSdmJyB8ICdGJwk7DQpwcm90ZWN0ZWQNCkV4cG9uZW50DQoJOgkoJ2UnfCdFJykgKCcr
J3wnLScpPyAoRGlnaXQpKwk7DQpwcm90ZWN0ZWQNClZvY2FidWxhcnkNCgk6CQ0KCQknXDMnLi4n
XDM3NycJOw0KTnVtYmVyDQoJOgkNCgkJe0xBKDIpID09ICd4JyB8fCBMQSgyKSA9PSAnWCd9Pw0K
CQknMCcgKCd4JyB8ICdYJykgKEhleERpZ2l0KSsgICAgICAgICAvLzE2vfjWxiAgICAgICAgICAg
ICAgICAgICAgICAgICANCgkJKExvbmdTdWZmaXggfCBVbnNpZ25lZFN1ZmZpeCk/ICB7X3R0eXBl
ID0gSEVYSU5UO30gICANCgl8DQoJCS8ve0xBKDIpID49ICcwJyAmJiBMQSgyKSA8PSAnNyd9Pw0K
CQknMCcgKE9jdERpZ2l0KSogICAgICAgICAgICAvLzi9+NbGDQoJCShMb25nU3VmZml4IHwgVW5z
aWduZWRTdWZmaXggKT8ge190dHlwZSA9IE9DVElOVDt9DQoJfAkvLyhEaWdpdCkrIGY9RmxvYXRU
YWlsIHtpZihmPT10cnVlKXtfdHR5cGUgPSBGTE9BVDt9ZWxzZXtfdHR5cGUgPSBERUNJTlQ7fX0N
CgkJKChEaWdpdCkrICgnLicgfCBFeHBvbmVudCkpPT4NCgkJKERpZ2l0KSsgKCcuJyAoRGlnaXQp
KiAoRXhwb25lbnQpPyB8IEV4cG9uZW50KShGbG9hdFN1ZmZpeCB8IExvbmdTdWZmaXgpP3tfdHR5
cGUgPSBGTE9BVDt9CQ0KCXwJKERpZ2l0KSsgKExvbmdTdWZmaXggfCBVbnNpZ25lZFN1ZmZpeCk/
IHtfdHR5cGUgPSBERUNJTlQ7fQ0KCXwJDQoJCSgiLi4uIik9PiAiLi4uIiAgICAgICAgICAgIHtf
dHR5cGUgPSBFTExJUFNJUzt9CS8vyqHC1LrFDQoJfAkNCgkJJy4nICAgICAgICAgICAgICAgICAg
ICAgICB7X3R0eXBlID0gRE9UO30JCS8vteO78tXfuKG14w0KCQkoCShEaWdpdCkrIChFeHBvbmVu
dCk/IChGbG9hdFN1ZmZpeCB8TG9uZ1N1ZmZpeCApPyB7X3R0eXBlID0gRkxPQVQ7fQ0KCQkpPw0K
CXwJDQoJOw0KSUQJLy+x6sq+t/ujrNXiwO/Du9PQttS52Lz819a9+NDQtKbA7Q0KCToJDQoJCSgn
YScuLid6J3wnQScuLidaJ3wnXycpICgnYScuLid6J3wnQScuLidaJ3wnXyd8JzAnLi4nOScpKg0K
CTsNCg0KZ2VuZXJhdGUgYW4gaW5jb3JyZWN0IE1DUFBMZXhlci5jcHAsIGhlcmUgaXMgdGhlIG5l
eHRUb2tlbigpIChmdW5jdGlvbiksIHlvdSBjYW4gc2VlIGNsZWFybHkgdGhhdCB0aGlzIGZ1bmN0
aW9uIGRvZXMgbm90IGRlYWwgd2l0aCBFT0YsIHNvIGl0IGNhbiBuZXZlciBzdG9wLg0KDQpBTlRM
Ul9VU0VfTkFNRVNQQUNFKGFudGxyKVJlZlRva2VuIE1DUFBMZXhlcjo6bmV4dFRva2VuKCkNCnsN
CglBTlRMUl9VU0VfTkFNRVNQQUNFKGFudGxyKVJlZlRva2VuIHRoZVJldFRva2VuOw0KCWZvciAo
OzspIHsNCgkJQU5UTFJfVVNFX05BTUVTUEFDRShhbnRscilSZWZUb2tlbiB0aGVSZXRUb2tlbjsN
CgkJaW50IF90dHlwZSA9IEFOVExSX1VTRV9OQU1FU1BBQ0UoYW50bHIpVG9rZW46OklOVkFMSURf
VFlQRTsNCgkJcmVzZXRUZXh0KCk7DQoJCXRyeSB7ICAgLy8gZm9yIGxleGljYWwgYW5kIGNoYXIg
c3RyZWFtIGVycm9yIGhhbmRsaW5nDQoJCQlzd2l0Y2ggKCBMQSgxKSkgew0KCQkJY2FzZSAweDJj
IC8qICcsJyAqLyA6DQoJCQl7DQoJCQkJbUNPTU1BKHRydWUpOw0KCQkJCXRoZVJldFRva2VuPV9y
ZXR1cm5Ub2tlbjsNCgkJCQlicmVhazsNCgkJCX0NCgkJCWNhc2UgMHgzZiAvKiAnPycgKi8gOg0K
CQkJew0KCQkJCW1RVUVTVElPTk1BUksodHJ1ZSk7DQoJCQkJdGhlUmV0VG9rZW49X3JldHVyblRv
a2VuOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQkJY2FzZSAweDNiIC8qICc7JyAqLyA6DQoJCQl7DQoJ
CQkJbVNFTUlDT0xPTih0cnVlKTsNCgkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJ
YnJlYWs7DQoJCQl9DQoJCQljYXNlIDB4MjggLyogJygnICovIDoNCgkJCXsNCgkJCQltTFBBUkVO
KHRydWUpOw0KCQkJCXRoZVJldFRva2VuPV9yZXR1cm5Ub2tlbjsNCgkJCQlicmVhazsNCgkJCX0N
CgkJCWNhc2UgMHgyOSAvKiAnKScgKi8gOg0KCQkJew0KCQkJCW1SUEFSRU4odHJ1ZSk7DQoJCQkJ
dGhlUmV0VG9rZW49X3JldHVyblRva2VuOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQkJY2FzZSAweDVi
IC8qICdbJyAqLyA6DQoJCQl7DQoJCQkJbUxTUVVBUkUodHJ1ZSk7DQoJCQkJdGhlUmV0VG9rZW49
X3JldHVyblRva2VuOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQkJY2FzZSAweDVkIC8qICddJyAqLyA6
DQoJCQl7DQoJCQkJbVJTUVVBUkUodHJ1ZSk7DQoJCQkJdGhlUmV0VG9rZW49X3JldHVyblRva2Vu
Ow0KCQkJCWJyZWFrOw0KCQkJfQ0KCQkJY2FzZSAweDdiIC8qICd7JyAqLyA6DQoJCQl7DQoJCQkJ
bUxDVVJMWSh0cnVlKTsNCgkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJYnJlYWs7
DQoJCQl9DQoJCQljYXNlIDB4N2QgLyogJ30nICovIDoNCgkJCXsNCgkJCQltUkNVUkxZKHRydWUp
Ow0KCQkJCXRoZVJldFRva2VuPV9yZXR1cm5Ub2tlbjsNCgkJCQlicmVhazsNCgkJCX0NCgkJCWNh
c2UgMHg3ZSAvKiAnficgKi8gOg0KCQkJew0KCQkJCW1USUxERSh0cnVlKTsNCgkJCQl0aGVSZXRU
b2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJYnJlYWs7DQoJCQl9DQoJCQljYXNlIDB4OSAvKiAnXHQn
ICovIDoNCgkJCWNhc2UgMHhhIC8qICdcbicgKi8gOg0KCQkJY2FzZSAweGMgLyogJ1wxNCcgKi8g
Og0KCQkJY2FzZSAweGQgLyogJ1xyJyAqLyA6DQoJCQljYXNlIDB4MjAgLyogJyAnICovIDoNCgkJ
CWNhc2UgMHg1YyAvKiAnXFwnICovIDoNCgkJCXsNCgkJCQltV2hpdGVzcGFjZSh0cnVlKTsNCgkJ
CQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJYnJlYWs7DQoJCQl9DQoJCQljYXNlIDB4
MjcgLyogJ1wnJyAqLyA6DQoJCQl7DQoJCQkJbUNoYXJMaXRlcmFsKHRydWUpOw0KCQkJCXRoZVJl
dFRva2VuPV9yZXR1cm5Ub2tlbjsNCgkJCQlicmVhazsNCgkJCX0NCgkJCWNhc2UgMHgyMiAvKiAn
XCInICovIDoNCgkJCXsNCgkJCQltU3RyaW5nTGl0ZXJhbCh0cnVlKTsNCgkJCQl0aGVSZXRUb2tl
bj1fcmV0dXJuVG9rZW47DQoJCQkJYnJlYWs7DQoJCQl9DQoJCQljYXNlIDB4NDEgLyogJ0EnICov
IDoNCgkJCWNhc2UgMHg0MiAvKiAnQicgKi8gOg0KCQkJY2FzZSAweDQzIC8qICdDJyAqLyA6DQoJ
CQljYXNlIDB4NDQgLyogJ0QnICovIDoNCgkJCWNhc2UgMHg0NSAvKiAnRScgKi8gOg0KCQkJY2Fz
ZSAweDQ2IC8qICdGJyAqLyA6DQoJCQljYXNlIDB4NDcgLyogJ0cnICovIDoNCgkJCWNhc2UgMHg0
OCAvKiAnSCcgKi8gOg0KCQkJY2FzZSAweDQ5IC8qICdJJyAqLyA6DQoJCQljYXNlIDB4NGEgLyog
J0onICovIDoNCgkJCWNhc2UgMHg0YiAvKiAnSycgKi8gOg0KCQkJY2FzZSAweDRjIC8qICdMJyAq
LyA6DQoJCQljYXNlIDB4NGQgLyogJ00nICovIDoNCgkJCWNhc2UgMHg0ZSAvKiAnTicgKi8gOg0K
CQkJY2FzZSAweDRmIC8qICdPJyAqLyA6DQoJCQljYXNlIDB4NTAgLyogJ1AnICovIDoNCgkJCWNh
c2UgMHg1MSAvKiAnUScgKi8gOg0KCQkJY2FzZSAweDUyIC8qICdSJyAqLyA6DQoJCQljYXNlIDB4
NTMgLyogJ1MnICovIDoNCgkJCWNhc2UgMHg1NCAvKiAnVCcgKi8gOg0KCQkJY2FzZSAweDU1IC8q
ICdVJyAqLyA6DQoJCQljYXNlIDB4NTYgLyogJ1YnICovIDoNCgkJCWNhc2UgMHg1NyAvKiAnVycg
Ki8gOg0KCQkJY2FzZSAweDU4IC8qICdYJyAqLyA6DQoJCQljYXNlIDB4NTkgLyogJ1knICovIDoN
CgkJCWNhc2UgMHg1YSAvKiAnWicgKi8gOg0KCQkJY2FzZSAweDVmIC8qICdfJyAqLyA6DQoJCQlj
YXNlIDB4NjEgLyogJ2EnICovIDoNCgkJCWNhc2UgMHg2MiAvKiAnYicgKi8gOg0KCQkJY2FzZSAw
eDYzIC8qICdjJyAqLyA6DQoJCQljYXNlIDB4NjQgLyogJ2QnICovIDoNCgkJCWNhc2UgMHg2NSAv
KiAnZScgKi8gOg0KCQkJY2FzZSAweDY2IC8qICdmJyAqLyA6DQoJCQljYXNlIDB4NjcgLyogJ2cn
ICovIDoNCgkJCWNhc2UgMHg2OCAvKiAnaCcgKi8gOg0KCQkJY2FzZSAweDY5IC8qICdpJyAqLyA6
DQoJCQljYXNlIDB4NmEgLyogJ2onICovIDoNCgkJCWNhc2UgMHg2YiAvKiAnaycgKi8gOg0KCQkJ
Y2FzZSAweDZjIC8qICdsJyAqLyA6DQoJCQljYXNlIDB4NmQgLyogJ20nICovIDoNCgkJCWNhc2Ug
MHg2ZSAvKiAnbicgKi8gOg0KCQkJY2FzZSAweDZmIC8qICdvJyAqLyA6DQoJCQljYXNlIDB4NzAg
LyogJ3AnICovIDoNCgkJCWNhc2UgMHg3MSAvKiAncScgKi8gOg0KCQkJY2FzZSAweDcyIC8qICdy
JyAqLyA6DQoJCQljYXNlIDB4NzMgLyogJ3MnICovIDoNCgkJCWNhc2UgMHg3NCAvKiAndCcgKi8g
Og0KCQkJY2FzZSAweDc1IC8qICd1JyAqLyA6DQoJCQljYXNlIDB4NzYgLyogJ3YnICovIDoNCgkJ
CWNhc2UgMHg3NyAvKiAndycgKi8gOg0KCQkJY2FzZSAweDc4IC8qICd4JyAqLyA6DQoJCQljYXNl
IDB4NzkgLyogJ3knICovIDoNCgkJCWNhc2UgMHg3YSAvKiAneicgKi8gOg0KCQkJew0KCQkJCW1J
RCh0cnVlKTsNCgkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJYnJlYWs7DQoJCQl9
DQoJCQlkZWZhdWx0Og0KCQkJCWlmICgoTEEoMSkgPT0gMHgzZSAvKiAnPicgKi8gKSAmJiAoTEEo
MikgPT0gMHgzZSAvKiAnPicgKi8gKSAmJiAoTEEoMykgPT0gMHgzZCAvKiAnPScgKi8gKSkgew0K
CQkJCQltU0hJRlRSSUdIVEVRVUFMKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9r
ZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDNjIC8qICc8JyAqLyApICYmIChM
QSgyKSA9PSAweDNjIC8qICc8JyAqLyApICYmIChMQSgzKSA9PSAweDNkIC8qICc9JyAqLyApKSB7
DQoJCQkJCW1TSElGVExFRlRFUVVBTCh0cnVlKTsNCgkJCQkJdGhlUmV0VG9rZW49X3JldHVyblRv
a2VuOw0KCQkJCX0NCgkJCQllbHNlIGlmICgoTEEoMSkgPT0gMHgyZCAvKiAnLScgKi8gKSAmJiAo
TEEoMikgPT0gMHgzZSAvKiAnPicgKi8gKSAmJiAoTEEoMykgPT0gMHgyYSAvKiAnKicgKi8gKSkg
ew0KCQkJCQltUE9JTlRFUlRPTUJSKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9r
ZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDJkIC8qICctJyAqLyApICYmIChM
QSgyKSA9PSAweDNlIC8qICc+JyAqLyApICYmICh0cnVlKSkgew0KCQkJCQltUE9JTlRFUlRPKHRy
dWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYg
KChMQSgxKSA9PSAweDNkIC8qICc9JyAqLyApICYmIChMQSgyKSA9PSAweDNkIC8qICc9JyAqLyAp
KSB7DQoJCQkJCW1FUVVBTCh0cnVlKTsNCgkJCQkJdGhlUmV0VG9rZW49X3JldHVyblRva2VuOw0K
CQkJCX0NCgkJCQllbHNlIGlmICgoTEEoMSkgPT0gMHgyMSAvKiAnIScgKi8gKSAmJiAoTEEoMikg
PT0gMHgzZCAvKiAnPScgKi8gKSkgew0KCQkJCQltTk9URVFVQUwodHJ1ZSk7DQoJCQkJCXRoZVJl
dFRva2VuPV9yZXR1cm5Ub2tlbjsNCgkJCQl9DQoJCQkJZWxzZSBpZiAoKExBKDEpID09IDB4M2Mg
LyogJzwnICovICkgJiYgKExBKDIpID09IDB4M2QgLyogJz0nICovICkpIHsNCgkJCQkJbUxFU1NU
SEFOT1JFUVVBTFRPKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJ
fQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDNlIC8qICc+JyAqLyApICYmIChMQSgyKSA9PSAw
eDNkIC8qICc9JyAqLyApKSB7DQoJCQkJCW1HUkVBVEVSVEhBTk9SRVFVQUxUTyh0cnVlKTsNCgkJ
CQkJdGhlUmV0VG9rZW49X3JldHVyblRva2VuOw0KCQkJCX0NCgkJCQllbHNlIGlmICgoTEEoMSkg
PT0gMHgyZiAvKiAnLycgKi8gKSAmJiAoTEEoMikgPT0gMHgzZCAvKiAnPScgKi8gKSkgew0KCQkJ
CQltRElWSURFRVFVQUwodHJ1ZSk7DQoJCQkJCXRoZVJldFRva2VuPV9yZXR1cm5Ub2tlbjsNCgkJ
CQl9DQoJCQkJZWxzZSBpZiAoKExBKDEpID09IDB4MmIgLyogJysnICovICkgJiYgKExBKDIpID09
IDB4M2QgLyogJz0nICovICkpIHsNCgkJCQkJbVBMVVNFUVVBTCh0cnVlKTsNCgkJCQkJdGhlUmV0
VG9rZW49X3JldHVyblRva2VuOw0KCQkJCX0NCgkJCQllbHNlIGlmICgoTEEoMSkgPT0gMHgyYiAv
KiAnKycgKi8gKSAmJiAoTEEoMikgPT0gMHgyYiAvKiAnKycgKi8gKSkgew0KCQkJCQltUExVU1BM
VVModHJ1ZSk7DQoJCQkJCXRoZVJldFRva2VuPV9yZXR1cm5Ub2tlbjsNCgkJCQl9DQoJCQkJZWxz
ZSBpZiAoKExBKDEpID09IDB4MmQgLyogJy0nICovICkgJiYgKExBKDIpID09IDB4M2QgLyogJz0n
ICovICkpIHsNCgkJCQkJbU1JTlVTRVFVQUwodHJ1ZSk7DQoJCQkJCXRoZVJldFRva2VuPV9yZXR1
cm5Ub2tlbjsNCgkJCQl9DQoJCQkJZWxzZSBpZiAoKExBKDEpID09IDB4MmQgLyogJy0nICovICkg
JiYgKExBKDIpID09IDB4MmQgLyogJy0nICovICkpIHsNCgkJCQkJbU1JTlVTTUlOVVModHJ1ZSk7
DQoJCQkJCXRoZVJldFRva2VuPV9yZXR1cm5Ub2tlbjsNCgkJCQl9DQoJCQkJZWxzZSBpZiAoKExB
KDEpID09IDB4MmEgLyogJyonICovICkgJiYgKExBKDIpID09IDB4M2QgLyogJz0nICovICkpIHsN
CgkJCQkJbVRJTUVTRVFVQUwodHJ1ZSk7DQoJCQkJCXRoZVJldFRva2VuPV9yZXR1cm5Ub2tlbjsN
CgkJCQl9DQoJCQkJZWxzZSBpZiAoKExBKDEpID09IDB4MjUgLyogJyUnICovICkgJiYgKExBKDIp
ID09IDB4M2QgLyogJz0nICovICkpIHsNCgkJCQkJbU1PREVRVUFMKHRydWUpOw0KCQkJCQl0aGVS
ZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDNl
IC8qICc+JyAqLyApICYmIChMQSgyKSA9PSAweDNlIC8qICc+JyAqLyApICYmICh0cnVlKSkgew0K
CQkJCQltU0hJRlRSSUdIVCh0cnVlKTsNCgkJCQkJdGhlUmV0VG9rZW49X3JldHVyblRva2VuOw0K
CQkJCX0NCgkJCQllbHNlIGlmICgoTEEoMSkgPT0gMHgzYyAvKiAnPCcgKi8gKSAmJiAoTEEoMikg
PT0gMHgzYyAvKiAnPCcgKi8gKSAmJiAodHJ1ZSkpIHsNCgkJCQkJbVNISUZUTEVGVCh0cnVlKTsN
CgkJCQkJdGhlUmV0VG9rZW49X3JldHVyblRva2VuOw0KCQkJCX0NCgkJCQllbHNlIGlmICgoTEEo
MSkgPT0gMHgyNiAvKiAnJicgKi8gKSAmJiAoTEEoMikgPT0gMHgyNiAvKiAnJicgKi8gKSkgew0K
CQkJCQltQU5EKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJfQ0K
CQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDdjIC8qICd8JyAqLyApICYmIChMQSgyKSA9PSAweDdj
IC8qICd8JyAqLyApKSB7DQoJCQkJCW1PUih0cnVlKTsNCgkJCQkJdGhlUmV0VG9rZW49X3JldHVy
blRva2VuOw0KCQkJCX0NCgkJCQllbHNlIGlmICgoTEEoMSkgPT0gMHgyNiAvKiAnJicgKi8gKSAm
JiAoTEEoMikgPT0gMHgzZCAvKiAnPScgKi8gKSkgew0KCQkJCQltQklUV0lTRUFOREVRVUFMKHRy
dWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYg
KChMQSgxKSA9PSAweDdjIC8qICd8JyAqLyApICYmIChMQSgyKSA9PSAweDNkIC8qICc9JyAqLyAp
KSB7DQoJCQkJCW1CSVRXSVNFT1JFUVVBTCh0cnVlKTsNCgkJCQkJdGhlUmV0VG9rZW49X3JldHVy
blRva2VuOw0KCQkJCX0NCgkJCQllbHNlIGlmICgoTEEoMSkgPT0gMHg1ZSAvKiAnXicgKi8gKSAm
JiAoTEEoMikgPT0gMHgzZCAvKiAnPScgKi8gKSkgew0KCQkJCQltQklUV0lTRVhPUkVRVUFMKHRy
dWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYg
KChMQSgxKSA9PSAweDJlIC8qICcuJyAqLyApICYmIChMQSgyKSA9PSAweDJhIC8qICcqJyAqLyAp
KSB7DQoJCQkJCW1ET1RNQlIodHJ1ZSk7DQoJCQkJCXRoZVJldFRva2VuPV9yZXR1cm5Ub2tlbjsN
CgkJCQl9DQoJCQkJZWxzZSBpZiAoKExBKDEpID09IDB4M2EgLyogJzonICovICkgJiYgKExBKDIp
ID09IDB4M2EgLyogJzonICovICkpIHsNCgkJCQkJbVNDT1BFKHRydWUpOw0KCQkJCQl0aGVSZXRU
b2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDJmIC8q
ICcvJyAqLyApICYmIChMQSgyKSA9PSAweDJhIC8qICcqJyAqLyApKSB7DQoJCQkJCW1Db21tZW50
KHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2Ug
aWYgKChMQSgxKSA9PSAweDJmIC8qICcvJyAqLyApICYmIChMQSgyKSA9PSAweDJmIC8qICcvJyAq
LyApKSB7DQoJCQkJCW1DUFBDb21tZW50KHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJu
VG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDNkIC8qICc9JyAqLyApICYm
ICh0cnVlKSkgew0KCQkJCQltQVNTSUdORVFVQUwodHJ1ZSk7DQoJCQkJCXRoZVJldFRva2VuPV9y
ZXR1cm5Ub2tlbjsNCgkJCQl9DQoJCQkJZWxzZSBpZiAoKExBKDEpID09IDB4M2EgLyogJzonICov
ICkgJiYgKHRydWUpKSB7DQoJCQkJCW1DT0xPTih0cnVlKTsNCgkJCQkJdGhlUmV0VG9rZW49X3Jl
dHVyblRva2VuOw0KCQkJCX0NCgkJCQllbHNlIGlmICgoTEEoMSkgPT0gMHgzYyAvKiAnPCcgKi8g
KSAmJiAodHJ1ZSkpIHsNCgkJCQkJbUxFU1NUSEFOKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1f
cmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDNlIC8qICc+JyAq
LyApICYmICh0cnVlKSkgew0KCQkJCQltR1JFQVRFUlRIQU4odHJ1ZSk7DQoJCQkJCXRoZVJldFRv
a2VuPV9yZXR1cm5Ub2tlbjsNCgkJCQl9DQoJCQkJZWxzZSBpZiAoKExBKDEpID09IDB4MmYgLyog
Jy8nICovICkgJiYgKHRydWUpKSB7DQoJCQkJCW1ESVZJREUodHJ1ZSk7DQoJCQkJCXRoZVJldFRv
a2VuPV9yZXR1cm5Ub2tlbjsNCgkJCQl9DQoJCQkJZWxzZSBpZiAoKExBKDEpID09IDB4MmIgLyog
JysnICovICkgJiYgKHRydWUpKSB7DQoJCQkJCW1QTFVTKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tl
bj1fcmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDJkIC8qICct
JyAqLyApICYmICh0cnVlKSkgew0KCQkJCQltTUlOVVModHJ1ZSk7DQoJCQkJCXRoZVJldFRva2Vu
PV9yZXR1cm5Ub2tlbjsNCgkJCQl9DQoJCQkJZWxzZSBpZiAoKExBKDEpID09IDB4MmEgLyogJyon
ICovICkgJiYgKHRydWUpKSB7DQoJCQkJCW1TVEFSKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1f
cmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDI1IC8qICclJyAq
LyApICYmICh0cnVlKSkgew0KCQkJCQltTU9EKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0
dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDIxIC8qICchJyAqLyAp
ICYmICh0cnVlKSkgew0KCQkJCQltTk9UKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJu
VG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDI2IC8qICcmJyAqLyApICYm
ICh0cnVlKSkgew0KCQkJCQltQU1QRVJTQU5EKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1fcmV0
dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDdjIC8qICd8JyAqLyAp
ICYmICh0cnVlKSkgew0KCQkJCQltQklUV0lTRU9SKHRydWUpOw0KCQkJCQl0aGVSZXRUb2tlbj1f
cmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJCWVsc2UgaWYgKChMQSgxKSA9PSAweDVlIC8qICdeJyAq
LyApICYmICh0cnVlKSkgew0KCQkJCQltQklUV0lTRVhPUih0cnVlKTsNCgkJCQkJdGhlUmV0VG9r
ZW49X3JldHVyblRva2VuOw0KCQkJCX0NCgkJCQllbHNlew0KCQkJCQltTnVtYmVyKHRydWUpOw0K
CQkJCQl0aGVSZXRUb2tlbj1fcmV0dXJuVG9rZW47DQoJCQkJfQ0KCQkJfQ0KCQkJaWYgKCAhX3Jl
dHVyblRva2VuICkNCgkJCQlnb3RvIHRyeUFnYWluOyAvLyBmb3VuZCBTS0lQIHRva2VuDQoNCgkJ
CV90dHlwZSA9IF9yZXR1cm5Ub2tlbi0+Z2V0VHlwZSgpOw0KCQkJX3R0eXBlID0gdGVzdExpdGVy
YWxzVGFibGUoX3R0eXBlKTsNCgkJCV9yZXR1cm5Ub2tlbi0+c2V0VHlwZShfdHR5cGUpOw0KCQkJ
cmV0dXJuIF9yZXR1cm5Ub2tlbjsNCgkJfQ0KCQljYXRjaCAoQU5UTFJfVVNFX05BTUVTUEFDRShh
bnRscilSZWNvZ25pdGlvbkV4Y2VwdGlvbiYgZSkgew0KCQkJCXRocm93IEFOVExSX1VTRV9OQU1F
U1BBQ0UoYW50bHIpVG9rZW5TdHJlYW1SZWNvZ25pdGlvbkV4Y2VwdGlvbihlKTsNCgkJfQ0KCQlj
YXRjaCAoQU5UTFJfVVNFX05BTUVTUEFDRShhbnRscilDaGFyU3RyZWFtSU9FeGNlcHRpb24mIGNz
aWUpIHsNCgkJCXRocm93IEFOVExSX1VTRV9OQU1FU1BBQ0UoYW50bHIpVG9rZW5TdHJlYW1JT0V4
Y2VwdGlvbihjc2llLmlvKTsNCgkJfQ0KCQljYXRjaCAoQU5UTFJfVVNFX05BTUVTUEFDRShhbnRs
cilDaGFyU3RyZWFtRXhjZXB0aW9uJiBjc2UpIHsNCgkJCXRocm93IEFOVExSX1VTRV9OQU1FU1BB
Q0UoYW50bHIpVG9rZW5TdHJlYW1FeGNlcHRpb24oY3NlLmdldE1lc3NhZ2UoKSk7DQoJCX0NCnRy
eUFnYWluOjsNCgl9DQp9DQoNCkkgZG9uJ3Qga25vdyB3aGV0aGVyIHRoZSBncmFtbWVyIGlzIHdy
b25nIG9yIGl0IGlzIGEgYnVnLg0KDQo=




More information about the antlr-interest mailing list