From: "Abinoam Jr." Date: 2010-12-16T23:08:08+09:00 Subject: Re: xml parsing in ruby --001636af01de2bc52004978795e6 Content-Type: text/plain; charset=ISO-8859-1 Salim, I have "finished" the script. It's getting uglier at each interaction. (needs refactoring) But, it seems to work well. I renamed to xml2uppall.rb. There's 2 xml. The second is a modified version just for put the script to proof. Each cpp file corresponds to an xml file. Tell me if it works for you. Tell me if you don't understand any part of the code. Abinoam Jr. On Thu, Dec 16, 2010 at 8:47 AM, Salim Reza wrote: > Abinoam Jr. wrote in post #968720: >> Salim, > Hi Abinoam, > > I am really grateful to you for your immense help. > >> Why the second "> But there's const StateP (P not PAR). >> Wouldn't it be StatePAR ? > > You are right. It should be "PAR" instead of "P" (that is: StatePAR) in > order to maintain the consistency and easiness. > > I have extended your help_code to messages. However, output result > appends all messages to each role, whereas each role(TC and PAR) should > have its own messages list. For example: I need: > typedef int[0,1] MsgsTC; > const MsgsTC PREPARE_TC = 0; > bool msgsTc[MsgsTC]; as an out put. But my output shows: > > typedef int[0,1] MsgsTC; > const MsgsTC PREPARE_TC = 0; > const MsgsTC COMPLETE_PAR = 1; that means it also appends message from > the PAR role which should not happen. I do not understand how do > decrease ranges. Though I have tried. > > I attach again revised xmlfile.xml and rubyfile.rb. Please help. > >> What language is this? > This is C/C++ based language used by Uppaal tool. > > Thanks once again for help. > > Attachments: > http://www.ruby-forum.com/attachment/5564/xmlfile.xml > http://www.ruby-forum.com/attachment/5565/rubyfile.rb > > > -- > Posted via http://www.ruby-forum.com/. > > --001636af01de2bc52004978795e6 Content-Type: application/x-ruby; name="xml2uppaal.rb" Content-Disposition: attachment; filename="xml2uppaal.rb" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ghrq2xqq0 IyEvdXNyL2Jpbi9lbnYgcnVieQoKcmVxdWlyZSAncmV4bWwvZG9jdW1lbnQnCmluY2x1ZGUgUkVY TUwKZmlsZW5hbWUgPSBBUkdWWzBdLm5pbD8gPyAieG1sZmlsZS54bWwiIDogQVJHVlswXQpmaWxl ID0gRmlsZS5uZXcoZmlsZW5hbWUpCmRvYyA9IERvY3VtZW50Lm5ldyhmaWxlKQoKU1RERVJSLnB1 dHMgIlwjIFBhcnNpbmcgZmlsZSAje2ZpbGVuYW1lfVxuIgoKc3RtID0gIjxkZWNsYXJhdGlvbj5c blxuIgppbml0X3N0YXRlID0gIiIKCmRvYy5lbGVtZW50cy5lYWNoKCJwcm90b2NvbC9yb2xlIikg ZG8gfHJ8CiByb2xlID0gci5hdHRyaWJ1dGVzWyJuYW1lIl0udXBjYXNlCiBzdGF0ZXMgPSByLmdl dF9lbGVtZW50cygic3RhdGVzL3N0YXRlIikKCiAjIEZpcnN0IGxpbmUKIHN0bSA8PCAidHlwZWRl ZiBpbnRbMCwlZF0gU3RhdGUlcztcbiIgJSBbc3RhdGVzLnNpemUtMSwgcm9sZV0KCiBzdGF0ZXMu ZWFjaF93aXRoX2luZGV4IGRvIHxzLCBpeHwKICAgIyBPbmUgbGluZSBmb3IgZWFjaCBzdGF0ZQog ICBzdGF0ZSA9ICJjb25zdCBTdGF0ZSVzICVzID0gJWQ7XG4iICUgWyByb2xlLCBzLnRleHQudXBj YXNlLCBpeF0KICAgCiAgICMgSXMgdGhpcyB0aGUgaW5pdGlhbCBzdGF0ZT8gCiAgIGlmIHMuYXR0 cmlidXRlc1siaW5pdGlhbCJdID09ICJ0cnVlIgogICAgICBpbml0X3N0YXRlID0gIlN0YXRlJXMg c3QlcyA9ICVzO1xuIiAlIFtyb2xlLCByb2xlLCBzLnRleHQudXBjYXNlXQogICBlbmQKCiAgIHN0 bSA8PCBzdGF0ZQogZW5kCiAKIHN0bSA8PCAiXG4iIDw8IGluaXRfc3RhdGUgPDwgIlxuIgoKZW5k CgoKCmRvYy5lbGVtZW50cy5lYWNoKCJwcm90b2NvbC9tZXNzYWdlcy9tZXNzYWdlIikgZG8gfG18 CiAgICAKIG1zZyA9IG0udGV4dC51cGNhc2UKIG1zZ19wYXR0ZXJuID0gUmVnZXhwLm5ldygvXHcq XyhcdyopLykKICAgCiBtc2dfcmVjZWl2ZXIgPSBtc2dfcGF0dGVybi5tYXRjaChtc2cpWzFdCiBz dG0gPDwgInR5cGVkZWYgaW50WzAsMV0gTXNncyVzO1xuIiAlIFttc2dfcmVjZWl2ZXJdCiBzdG0g PDwgImNvbnN0IE1zZ3MlcyAlcyA9IDA7XG4iICUgW21zZ19yZWNlaXZlciwgbXNnXQogc3RtIDw8 ICJib29sIG1zZ3Mlc1tNc2dzJXNdO1xuIiAlIFttc2dfcmVjZWl2ZXIsIG1zZ19yZWNlaXZlcl0K IHN0bSA8PCAiXG4iCmVuZAoKc3RtIDw8ICI8L2RlY2xhcmF0aW9uPiIgICAgICAKcHV0cyBzdG0K Cg== --001636af01de2bc52004978795e6 Content-Type: text/xml; charset=US-ASCII; name="xmlfile.xml" Content-Disposition: attachment; filename="xmlfile.xml" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ghrq36ts1 PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCg0KPCEtLSBOZXcgZG9jdW1l bnQgY3JlYXRlZCB3aXRoIEVkaXRpWCBhdCBTYXQgRGVjIDExIDEzOjE4OjQwIENFVCAyMDEwIC0t Pg0KDQo8cHJvdG9jb2wgbmFtZT0iU2ltcGxlIj4NCjxtZXNzYWdlcz4NCgk8bWVzc2FnZT5wcmVw YXJlX3RjPC9tZXNzYWdlPg0KDQoJPG1lc3NhZ2U+Y29tcGxldGVfcDwvbWVzc2FnZT4NCjwvbWVz c2FnZXM+DQo8cm9sZSBuYW1lPSJ0YyI+DQo8c3RhdGVzPg0KCTxzdGF0ZSBpbml0aWFsPSJ0cnVl Ij50Y19hY3RpdmU8L3N0YXRlPg0KCTxzdGF0ZT50Y19jb21wbGV0aW5nPC9zdGF0ZT4NCgk8c3Rh dGU+dGNfZW5kZWQ8L3N0YXRlPg0KPC9zdGF0ZXM+DQoJPHJ1bGUgaWQ9IjEiPg0KCQk8cHJlPg0K CQkJPHN0YXRlPgl0Y19hY3RpdmU8L3N0YXRlPg0KCQkJPG1lc3NhZ2U+IiAiPC9tZXNzYWdlPg0K CQk8L3ByZT4NCgkJPHBvc3Q+DQoJCQk8c3RhdGU+dGNfY29tcGxldGluZzwvc3RhdGU+DQoJCQk8 bWVzc2FnZT5wcmVwYXJlX3RjPC9tZXNzYWdlPg0KCQk8L3Bvc3Q+DQoJPC9ydWxlPg0KCTxydWxl IGlkPSIyIj4NCgkJPHByZT4NCgkJCTxzdGF0ZT50Y19jb21wbGV0aW5nPC9zdGF0ZT4NCgkJCTxt ZXNzYWdlPmNvbXBsZXRlX3A8L21lc3NhZ2U+DQoJCTwvcHJlPg0KCQk8cG9zdD4NCgkJCTxzdGF0 ZT50Y19lbmRlZDwvc3RhdGU+DQoJCQk8bWVzc2FnZT4iICI8L21lc3NhZ2U+DQoJCTwvcG9zdD4N Cgk8L3J1bGU+DQo8L3JvbGU+DQo8cm9sZSBuYW1lPSJwYXIiPg0KPHN0YXRlcz4NCgk8c3RhdGUg aW5pdGlhbD0idHJ1ZSI+cF9hY3RpdmU8L3N0YXRlPg0KCTxzdGF0ZT5wX2NvbXBsZXRpbmc8L3N0 YXRlPg0KCTxzdGF0ZT5wX2VuZGVkPC9zdGF0ZT4NCjwvc3RhdGVzPg0KCTxydWxlIGlkPSIzIj4N CgkJPHByZT4NCgkJCTxzdGF0ZT5wX2FjdGl2ZTwvc3RhdGU+DQoJCQk8bWVzc2FnZT5wcmVwYXJl X3RjPC9tZXNzYWdlPg0KCQk8L3ByZT4NCgkJPHBvc3Q+DQoJCQk8c3RhdGU+cF9jb21wbGV0aW5n PC9zdGF0ZT4NCgkJCTxtZXNzYWdlPiIiPC9tZXNzYWdlPg0KCQk8L3Bvc3Q+DQoJPC9ydWxlPg0K CTxydWxlIGlkPSI0Ij4NCgkJPHByZT4NCgkJCTxzdGF0ZT5wX2NvbXBsZXRpbmc8L3N0YXRlPg0K CQkJPG1lc3NhZ2U+IiI8L21lc3NhZ2U+DQoJCTwvcHJlPg0KCQk8cG9zdD4NCgkJCTxzdGF0ZT5w X2VuZGVkPC9zdGF0ZT4NCgkJCTxtZXNzYWdlPmNvbXBsZXRlX3A8L21lc3NhZ2U+DQoJCTwvcG9z dD4NCgk8L3J1bGU+DQo8L3JvbGU+DQoNCjwvcHJvdG9jb2w+DQoNCg== --001636af01de2bc52004978795e6 Content-Type: text/x-c++src; charset=US-ASCII; name="uppaal.cpp" Content-Disposition: attachment; filename="uppaal.cpp" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ghrq3bme2 PGRlY2xhcmF0aW9uPgoKdHlwZWRlZiBpbnRbMCwyXSBTdGF0ZVRDOwpjb25zdCBTdGF0ZVRDIFRD X0FDVElWRSA9IDA7CmNvbnN0IFN0YXRlVEMgVENfQ09NUExFVElORyA9IDE7CmNvbnN0IFN0YXRl VEMgVENfRU5ERUQgPSAyOwoKU3RhdGVUQyBzdFRDID0gVENfQUNUSVZFOwoKdHlwZWRlZiBpbnRb MCwyXSBTdGF0ZVBBUjsKY29uc3QgU3RhdGVQQVIgUF9BQ1RJVkUgPSAwOwpjb25zdCBTdGF0ZVBB UiBQX0NPTVBMRVRJTkcgPSAxOwpjb25zdCBTdGF0ZVBBUiBQX0VOREVEID0gMjsKClN0YXRlUEFS IHN0UEFSID0gUF9BQ1RJVkU7Cgp0eXBlZGVmIGludFswLDFdIE1zZ3NUQzsKY29uc3QgTXNnc1RD IFBSRVBBUkVfVEMgPSAwOwpib29sIG1zZ3NUQ1tNc2dzVENdOwoKdHlwZWRlZiBpbnRbMCwxXSBN c2dzUDsKY29uc3QgTXNnc1AgQ09NUExFVEVfUCA9IDA7CmJvb2wgbXNnc1BbTXNnc1BdOwoKPC9k ZWNsYXJhdGlvbj4K --001636af01de2bc52004978795e6 Content-Type: text/xml; charset=US-ASCII; name="xmlfile2.xml" Content-Disposition: attachment; filename="xmlfile2.xml" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ghrq4jda3 PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCg0KPCEtLSBOZXcgZG9jdW1l bnQgY3JlYXRlZCB3aXRoIEVkaXRpWCBhdCBTYXQgRGVjIDExIDEzOjE4OjQwIENFVCAyMDEwIC0t Pg0KDQo8cHJvdG9jb2wgbmFtZT0iU2ltcGxlIj4NCjxtZXNzYWdlcz4NCgk8bWVzc2FnZT5wcmVw YXJlX3RjPC9tZXNzYWdlPg0KCTxtZXNzYWdlPmNvbXBsZXRlX3A8L21lc3NhZ2U+DQogICAgICAg IDxtZXNzYWdlPnNsZWVwX3RjPC9tZXNzYWdlPiAgICAgICAgDQo8L21lc3NhZ2VzPg0KPHJvbGUg bmFtZT0idGMiPg0KPHN0YXRlcz4NCgk8c3RhdGUgaW5pdGlhbD0iIj50Y19hY3RpdmU8L3N0YXRl Pg0KCTxzdGF0ZSBpbml0aWFsPSIiPnRjX2NvbXBsZXRpbmc8L3N0YXRlPg0KCTxzdGF0ZT50Y19l bmRlZDwvc3RhdGU+DQoJPHN0YXRlIGluaXRpYWw9InRydWUiPnRjX3NsZWVwaW5nPC9zdGF0ZT4N Cjwvc3RhdGVzPg0KCTxydWxlIGlkPSIxIj4NCgkJPHByZT4NCgkJCTxzdGF0ZT4JdGNfYWN0aXZl PC9zdGF0ZT4NCgkJCTxtZXNzYWdlPiIgIjwvbWVzc2FnZT4NCgkJPC9wcmU+DQoJCTxwb3N0Pg0K CQkJPHN0YXRlPnRjX2NvbXBsZXRpbmc8L3N0YXRlPg0KCQkJPG1lc3NhZ2U+cHJlcGFyZV90Yzwv bWVzc2FnZT4NCgkJPC9wb3N0Pg0KCTwvcnVsZT4NCgk8cnVsZSBpZD0iMiI+DQoJCTxwcmU+DQoJ CQk8c3RhdGU+dGNfY29tcGxldGluZzwvc3RhdGU+DQoJCQk8bWVzc2FnZT5jb21wbGV0ZV9wPC9t ZXNzYWdlPg0KCQk8L3ByZT4NCgkJPHBvc3Q+DQoJCQk8c3RhdGU+dGNfZW5kZWQ8L3N0YXRlPg0K CQkJPG1lc3NhZ2U+IiAiPC9tZXNzYWdlPg0KCQk8L3Bvc3Q+DQoJPC9ydWxlPg0KPC9yb2xlPg0K PHJvbGUgbmFtZT0icGFyIj4NCjxzdGF0ZXM+DQoJPHN0YXRlIGluaXRpYWw9InRydWUiPnBfYWN0 aXZlPC9zdGF0ZT4NCgk8c3RhdGU+cF9jb21wbGV0aW5nPC9zdGF0ZT4NCgk8c3RhdGU+cF9lbmRl ZDwvc3RhdGU+DQo8L3N0YXRlcz4NCgk8cnVsZSBpZD0iMyI+DQoJCTxwcmU+DQoJCQk8c3RhdGU+ cF9hY3RpdmU8L3N0YXRlPg0KCQkJPG1lc3NhZ2U+cHJlcGFyZV90YzwvbWVzc2FnZT4NCgkJPC9w cmU+DQoJCTxwb3N0Pg0KCQkJPHN0YXRlPnBfY29tcGxldGluZzwvc3RhdGU+DQoJCQk8bWVzc2Fn ZT4iIjwvbWVzc2FnZT4NCgkJPC9wb3N0Pg0KCTwvcnVsZT4NCgk8cnVsZSBpZD0iNCI+DQoJCTxw cmU+DQoJCQk8c3RhdGU+cF9jb21wbGV0aW5nPC9zdGF0ZT4NCgkJCTxtZXNzYWdlPiIiPC9tZXNz YWdlPg0KCQk8L3ByZT4NCgkJPHBvc3Q+DQoJCQk8c3RhdGU+cF9lbmRlZDwvc3RhdGU+DQoJCQk8 bWVzc2FnZT5jb21wbGV0ZV9wPC9tZXNzYWdlPg0KCQk8L3Bvc3Q+DQoJPC9ydWxlPg0KPC9yb2xl Pg0KDQo8L3Byb3RvY29sPg0KDQoNCg0KDQoNCg0KDQoNCg== --001636af01de2bc52004978795e6 Content-Type: text/x-c++src; charset=US-ASCII; name="uppaal2.cpp" Content-Disposition: attachment; filename="uppaal2.cpp" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ghrq4pgy4 PGRlY2xhcmF0aW9uPgoKdHlwZWRlZiBpbnRbMCwzXSBTdGF0ZVRDOwpjb25zdCBTdGF0ZVRDIFRD X0FDVElWRSA9IDA7CmNvbnN0IFN0YXRlVEMgVENfQ09NUExFVElORyA9IDE7CmNvbnN0IFN0YXRl VEMgVENfRU5ERUQgPSAyOwpjb25zdCBTdGF0ZVRDIFRDX1NMRUVQSU5HID0gMzsKClN0YXRlVEMg c3RUQyA9IFRDX1NMRUVQSU5HOwoKdHlwZWRlZiBpbnRbMCwyXSBTdGF0ZVBBUjsKY29uc3QgU3Rh dGVQQVIgUF9BQ1RJVkUgPSAwOwpjb25zdCBTdGF0ZVBBUiBQX0NPTVBMRVRJTkcgPSAxOwpjb25z dCBTdGF0ZVBBUiBQX0VOREVEID0gMjsKClN0YXRlUEFSIHN0UEFSID0gUF9BQ1RJVkU7Cgp0eXBl ZGVmIGludFswLDFdIE1zZ3NUQzsKY29uc3QgTXNnc1RDIFBSRVBBUkVfVEMgPSAwOwpib29sIG1z Z3NUQ1tNc2dzVENdOwoKdHlwZWRlZiBpbnRbMCwxXSBNc2dzUDsKY29uc3QgTXNnc1AgQ09NUExF VEVfUCA9IDA7CmJvb2wgbXNnc1BbTXNnc1BdOwoKdHlwZWRlZiBpbnRbMCwxXSBNc2dzVEM7CmNv bnN0IE1zZ3NUQyBTTEVFUF9UQyA9IDA7CmJvb2wgbXNnc1RDW01zZ3NUQ107Cgo8L2RlY2xhcmF0 aW9uPgo= --001636af01de2bc52004978795e6--