---450471115-1320446996-889561605=:15423
Content-Type: TEXT/PLAIN; charset=US-ASCII
Attached to this oemail are three example programs that perform "brace
paair checking". The first one is the "uncommented" version. The
second is a reasonable solution. The third is an old version which
doesn't quite solve the problem in the same way. Take a look at the
third version and test it.
Allen
---450471115-1320446996-889561605=:15423
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="short.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.980310152645.15423B@hilbert-pc.va.wagner.com>
Content-Description: Bad Version
I2luY2x1ZGUgPHN0ZGlvLmg+DQoNCmludCBtYWluICh2b2lkKQ0KeyBjaGFy
IGMsZD0wOw0KICB3aGlsZSAoKGMgPSBnZXRjaGFyKCkpICE9IEVPRikNCiAg
eyBwdXRjaGFyKGMpOw0KICAgIGlmICgoZCArPShjPT0neycpLShjPT0nfScp
KTwwKQ0KICAgIHtwdXRjaGFyKCc/Jyk7cHV0Y2hhcignPycpO2Q9MDt9fQ0K
ICBpZiAoZD4wKQ0KICB7IHByaW50ZiAoIlxuXG5FUlJPUjogTWlzc2luZyBS
aWdodCBCcmFjZXM6ICIpOw0KICAgIHdoaWxlIChkLS0pIHB1dGNoYXIoJ30n
KTtwdXRjaGFyKCdcbicpO30NCiAgcmV0dXJuIDA7DQp9DQoNCg0K
---450471115-1320446996-889561605=:15423
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="count_braces.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.980310152645.15423C@hilbert-pc.va.wagner.com>
Content-Description: Good Version 1
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKiovDQovKiBBdXRob3I6IEMuIEFs
bGVuIEJ1dGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKi8NCi8qIEZpbGU6ICAgY291bnRfYnJhY2VzLmMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyog
RGF0ZTogICBNYXJjaCAzLCAxOTk4ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovDQovKiBEZXNjcmlwdGlvbjogVGhp
cyBwcm9ncmFtIGF0dGVtcHRzIHRvIHZlcmlmeSB0aGUgcHJvcGVyIHBhaXJp
bmcgICAgKi8NCi8qICAgICBvZiBicmFjZXMuIFRoZSBmaWxlIHRvIGJlIHRl
c3RlZCBpcyByZWRpcmVjdGVkIGFzIGlucHV0IHRvIHRoZSAqLw0KLyogICAg
IGV4ZWN1dGFibGUgYW5kIHRoZSBmaWxlLCB0b2dldGhlciB3aXRoIGFueSBl
cnJvciBtZXNzYWdlcywgaXMgICovDQovKiAgICAgZWNob2VkIHRvIHRoZSBk
aXNwbGF5LiAgQSByaWdodCBicmFjZSAnfScgZm9yIHdoaWNoIHRoZXJlIGlz
ICAgKi8NCi8qICAgICBub3QgYSBwcmV2aW91cyBtYXRjaGluZyBsZWZ0IGJy
YWNlIGlzIGNvbnNpcmVkIGFuIGVycm9yIGFuZCAgICAqLw0KLyogICAgIGEg
cGFpciBvZiBxdWVzdGlvbiBtYXJrcyB3aWxsIGJlIGVjaG9lZCBhZnRlciB0
aGUgb2ZmZW5kaW5nICAgICovDQovKiAgICAgcmlnaHQgYnJhY2UuICBUaGUg
b2ZmZW5kaW5nIHJpZ2h0IGJyYWNlIHdpbGwgTk9UIGJlIGNvdW50ZWQgICAg
Ki8NCi8qICAgICBhcyBtYXRjaGluZyBhbnkgc3Vic2VxdWVudCBsZWZ0IGJy
YWNlcy4gIElmIHRoZSBlbmQgb2YgdGhlICAgICAqLw0KLyogICAgIGZpbGUg
aXMgcmVhY2hlZCBhbmQgdGhlcmUgYXJlIGxlZnQgYnJhY2VzIGZvciB3aGlj
aCBubyAgICAgICAgICovDQovKiAgICAgbWF0aGNpbmcgcmlnaHQgYnJhY2Ug
aXMgZm91bmQgYW4gZXJyb3IgbWVzc2FnZSwgYWxvbmcgd2l0aCB0aGUgKi8N
Ci8qICAgICBudW1iZXIgb2YgbWlzc2luZyByaWdodCBicmFjZXMgd2lsbCBi
ZSBvdXRwdXQgdG8gdGhlIGRpc3BsYXkuICAqLw0KLyogTW9kaWZpY2F0aW9u
czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICovDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCg0K
I2luY2x1ZGUgPHN0ZGlvLmg+DQoNCmludCBtYWluICh2b2lkKQ0Kew0KICBp
bnQgYzsNCiAgICAvKiBob2xkcyB0aGUgY2hhcmFjdGVycyByZWFkIGluIGZy
b20gdGhlIGZpbGUgKi8NCiAgaW50IGxlZnRfY250ID0gMDsNCiAgICAvKiBu
dW1iZXIgb2YgbGVmdCBicmFjZXMgcmVhZCBmcm9tIHRoZSBmaWxlICovDQog
IGludCByaWdodF9jbnQgPSAwOw0KICAgIC8qIG51bWJlciBvZiBNQVRDSElO
RyByaWdodCBicmFjZXMgcmVhZCBmcm9tIHRoZSBmaWxlICovDQogIA0KICAv
KiByZWFkIGZyb20gc3RhbmRhcmQgaW5wdXQgdW50aWwgcmVhY2ggRW5kIE9m
IEZpbGUgbWFya2VyICovDQogIHdoaWxlICgoYyA9IGdldGNoYXIoKSkgIT0g
RU9GKQ0KICB7IC8qIGVjaG8gaW5wdXQgdG8gZGlzcGxheSAqLw0KICAgIHB1
dGNoYXIoYyk7DQogICAgaWYgKGMgPT0gJ3snKQ0KICAgIHsgbGVmdF9jbnQr
KzsNCiAgICB9DQogICAgZWxzZSBpZiAoYyA9PSAnfScpDQogICAgeyByaWdo
dF9jbnQrKzsNCiAgICAgIC8qIHBsYWNlIGVycm9yIHRlc3QgaW5zaWRlIGlm
IGNvbmRpdGlvbiBmb3IgZWZmaWNpZW5jeSAqLw0KICAgICAgaWYgKHJpZ2h0
X2NudCA+IGxlZnRfY250KQ0KICAgICAgeyAvKiBlbmNvdW50ZXJlZCBleHRy
YSByaWdodCBicmFjZTsgZmxhZyB3aXRoID8/ICovDQogICAgICAgIHB1dGNo
YXIoJz8nKTsNCiAgICAgICAgcHV0Y2hhcignPycpOw0KICAgICAgICANCiAg
ICAgICAgLyogYWRqdXN0IHJpZ2h0X2NudCBzaW5jZSB0aGlzIGJyYWNlIGlz
IG5vbm1hdGNoaW5nICovDQogICAgICAgIC0tcmlnaHRfY250Ow0KICAgICAg
fSAgICANCiAgICB9DQogIH0NCiAgDQogIC8qIHRlc3QgZm9yIHVubWF0Y2hl
ZCBsZWZ0IGJyYWNlcyAqLw0KICBpZiAobGVmdF9jbnQgPiByaWdodF9jbnQp
DQogIHsgcHJpbnRmICgiRVJST1I6IE1pc3NpbmcgcmlnaHQgYnJhY2VzOiAi
KTsNCiAgICAvKiBkZWNyZW1lbnQgbGVmdF9jbnQgYXMgcHJpbnQgb3V0ICJt
aXNzaW5nIiBicmFjZXMgKi8NCiAgICB3aGlsZSAobGVmdF9jbnQtLSA+IHJp
Z2h0X2NudCkNCiAgICB7IHB1dGNoYXIoJ30nKTsNCiAgICB9ICAgICAgDQog
ICAgcHV0Y2hhciAoJ1xuJyk7DQogIH0gICAgICAgICANCiAgDQogIHJldHVy
biAwOw0KfQ0K
---450471115-1320446996-889561605=:15423
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Assign1.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.980310152645.15423D@hilbert-pc.va.wagner.com>
Content-Description: Good Version 2
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NDQovKiAgIEZpbGUg
ICAgICAgOiBhc3NpZ24xLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLw0NCi8qICAgRGF0ZSAgICAgICA6IDA5
LzEzLzkzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICovDQ0KLyogICBBdXRob3IgICAgIDogQy4gQWxsZW4gQnV0
bGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ki8NDQovKiAgIFByb2plY3QgICAgOiBDUFNDMzk1IEFzc2lnbm1lbnRzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0NCi8qICAg
RGVzY3JpcHRpb246IFRoaXMgcHJvZ3JhbSBkZXRlY3RzIHNwdXJpb3VzIHJp
Z2h0IGJyYWNlcyBhbmQgZXh0cmEgICAgICovDQ0KLyogICAgICAgICAgICAg
IDogbGVmdCBicmFjZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKi8NDQovKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqLw0NCg0NCgkJICAgICAgLyoqKioqKioqKioqKioqKioqKioqKioq
KiovDQ0KCQkgICAgICAvKiAgICAgSW5jbHVkZSBGaWxlcyAgICAgKi8NDQoJ
CSAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqLw0NCg0NCiNpbmNs
dWRlIDxzdGRpby5oPg0NCg0NCgkJICAgICAgLyoqKioqKioqKioqKioqKioq
KioqKioqKiovDQ0KCQkgICAgICAvKiAgIFN5bWJvbGljIENvbnN0YW50cyAg
Ki8NDQoJCSAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqLw0NCg0N
CiNkZWZpbmUgIE1BWF9DSEFSUyAxMzINDQojZGVmaW5lICBUUlVFIDENDQoj
ZGVmaW5lICBGQUxTRSAwDQ0KDQ0Kdm9pZCBtYWluICh2b2lkKQ0NCg0NCnsN
DQogICBjaGFyIGxpbmUgW01BWF9DSEFSUysxXTsNDQogICAgIC8qIGxpbmUg
dXNlZCB0byBob2xkIGVycm9yIG91dHB1dCB3aGVuIGV4dHJhIHJpZ2h0IGJy
YWNlIGlzIGZvdW5kICovDQ0KDQ0KICAgaW50IGM7DQ0KICAgICAvKiBjaGFy
YWN0ZXIgcmVhZCBmcm9tIHN0YW5kYXJkIGlucHV0ICovDQ0KICAgaW50IGkg
PSAtMTsNDQogICAgIC8qIGluZGV4IGludG8gdGhlIGxpbmUgc3RyaW5nICov
DQ0KICAgaW50IGV4dHJhX3JpZ2h0ID0gRkFMU0U7DQ0KICAgICAvKiBmbGFn
IHNldCB3aGVuIGV4dHJhIHJpZ2h0IGJyYWNlIGlzIGZvdW5kICovDQ0KICAg
aW50IHVubWF0Y2hlZF9sZWZ0ID0gMDsNDQogICAgIC8qIG51bWJlciBvZiB1
bm1hdGNoZWQgbGVmdCBicmFjZXMgKi8NDQoNDQoJCSAgICAgIC8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqLw0NCgkJICAgICAgLyogRVhFQ1VU
QUJMRSBDT0RFIEJFR0lOUyBIRVJFICovDQ0KCQkgICAgICAvKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKi8NDQoNDQogICB3aGlsZSAoKGMgPSBn
ZXRjaGFyKCkpICE9IEVPRikNDQogICB7ICAvKiBBbHdheXMgZWNobyBjaGFy
YWN0ZXIgcmVhZCBpbiAqLw0NCiAgICAgIHB1dGNoYXIgKGMpOw0NCg0NCiAg
ICAgIC8qIHB1dCBhIGJsYW5rIGluIHRoZSBlcnJvciBsaW5lIC0tIHdpbGwg
YmUgb3ZlcndyaXR0ZW4gYXMgbmVlZGVkICovDQ0KICAgICAgbGluZSBbKytp
XSA9ICcgJzsNDQoNDQogICAgICAvKiBpbmNyZWFzZSBvciBkZWNyZWFzZSBu
dW1iZXIgb2YgdW5tYXRjaGVkIGxlZnQgYnJhY2VzICovDQ0KICAgICAgdW5t
YXRjaGVkX2xlZnQgKz0gKGMgPT0gJ3snKSAtIChjID09ICd9Jyk7DQ0KDQ0K
ICAgICAgaWYgKHVubWF0Y2hlZF9sZWZ0IDwgMCkNDQogICAgICB7ICAvKiBl
eHRyYSByaWdodCBicmFjZSAqLw0NCgkgZXh0cmFfcmlnaHQgPSBUUlVFOw0N
CgkgbGluZSBbaV0gICAgPSAnPyc7DQ0KDQ0KCSAvKiBzZXQgYmFjayB0byB6
ZXJvIHNvIHJlbWFpbmluZyBicmFjZXMgYXJlIGRvbmUgY29ycmVjdGx5ICov
DQ0KCSArK3VubWF0Y2hlZF9sZWZ0Ow0NCiAgICAgIH0NDQogICAgICBlbHNl
IGlmIChjID09ICdcdCcpDQ0KICAgICAgeyAgLyogc2F2ZSB0YWIgZm9yIHNw
YWNpbmcgcHVycG9zZXMgKi8NDQoJIGxpbmUgW2ldID0gJ1x0JzsNDQogICAg
ICB9DQ0KICAgICAgZWxzZSBpZiAoYyA9PSAnXG4nKQ0NCiAgICAgIHsgIC8q
IHRlc3Qgd2hldGhlciBlcnJvciBsaW5lIGlzIHJlcXVpcmVkICovDQ0KCSBp
ZiAoZXh0cmFfcmlnaHQpDQ0KCSB7ICAvKiBjb21wbGV0ZSB0aGUgbGluZSB3
aXRoIGNhcnJpYWdlIHJldHVybiBhbmQgZW5kIG9mIHN0cmluZyAqLw0NCgkg
ICAgbGluZSBbaV0gICA9ICdcbic7DQ0KCSAgICBsaW5lIFtpKzFdID0gJ1ww
JzsNDQoJICAgIHByaW50ZiAoIiVzIiwgbGluZSk7DQ0KDQ0KCSAgICAvKiBy
ZXNldCB0aGUgZXJyb3IgZmxhZyAqLw0NCgkgICAgZXh0cmFfcmlnaHQgPSBG
QUxTRTsNDQoJIH0NDQoNDQoJIC8qIHJlc2V0IGxpbmUgaW5kZXggKi8NDQoJ
IGkgPSAtMTsNDQogICAgICB9DQ0KICAgfQ0NCg0NCiAgIC8qIGFmdGVyIGFs
bCBpbnB1dCB0ZXN0IGZvciBleHRyYSBsZWZ0IHBhcmVudGhlc2VzICovDQ0K
ICAgaWYgKHVubWF0Y2hlZF9sZWZ0KQ0NCiAgIHsgIHByaW50ZiAoIkVSUk9S
OiAlZCB0b28gbWFueSBsZWZ0IGJyYWNlcy5cbiIsIHVubWF0Y2hlZF9sZWZ0
KTsNDQogICB9DQ0KfQ0NCg==
---450471115-1320446996-889561605=:15423--