PageRenderTime 62ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/talk/sfi2008/demo/rpn.js

https://bitbucket.org/pypy/extradoc/
JavaScript | 1343 lines | 1269 code | 66 blank | 8 comment | 109 complexity | 998a0312585bb1f9d3af39ae14caf4b3 MD5 | raw file
  1. // starts hand written code
  2. MALLOC_ZERO_FILLED = 0
  3. try {
  4. log;
  5. print = log;
  6. } catch(e) {
  7. }
  8. Function.prototype.method = function (name, func) {
  9. this.prototype[name] = func;
  10. return this;
  11. };
  12. function inherits(child, parent) {
  13. child.parent = parent;
  14. for (i in parent.prototype) {
  15. if (!child.prototype[i]) {
  16. child.prototype[i] = parent.prototype[i];
  17. }
  18. }
  19. }
  20. function isinstanceof(self, what) {
  21. if (!self) {
  22. return (false);
  23. }
  24. t = self.constructor;
  25. while ( t ) {
  26. if (t == what) {
  27. return (true);
  28. }
  29. t = t.parent;
  30. }
  31. return (false);
  32. }
  33. /*function delitem(fn, l, i) {
  34. for(j = i; j < l.length-1; ++j) {
  35. l[j] = l[j+1];
  36. }
  37. l.length--;
  38. }*/
  39. function strcmp(s1, s2) {
  40. if ( s1 < s2 ) {
  41. return ( -1 );
  42. } else if ( s1 == s2 ) {
  43. return ( 0 );
  44. }
  45. return (1);
  46. }
  47. function startswith(s1, s2) {
  48. if (s1.length < s2.length) {
  49. return(false);
  50. }
  51. for (i = 0; i < s2.length; ++i){
  52. if (s1.charAt(i) != s2.charAt(i)) {
  53. return(false);
  54. }
  55. }
  56. return(true);
  57. }
  58. function endswith(s1, s2) {
  59. if (s2.length > s1.length) {
  60. return(false);
  61. }
  62. for (i = s1.length-s2.length; i < s1.length; ++i) {
  63. if (s1.charAt(i) != s2.charAt(i - s1.length + s2.length)) {
  64. return(false);
  65. }
  66. }
  67. return(true);
  68. }
  69. function splitchr(s, ch) {
  70. var i, lst, next;
  71. lst = [];
  72. next = "";
  73. for (i = 0; i<s.length; ++i) {
  74. if (s.charAt(i) == ch) {
  75. lst.length += 1;
  76. lst[lst.length-1] = next;
  77. next = "";
  78. } else {
  79. next += s.charAt(i);
  80. }
  81. }
  82. lst.length += 1;
  83. lst[lst.length-1] = next;
  84. return (lst);
  85. }
  86. function DictIter() {
  87. }
  88. DictIter.prototype.ll_go_next = function () {
  89. var ret = this.l.length != 0;
  90. this.current_key = this.l.pop();
  91. return ret;
  92. }
  93. DictIter.prototype.ll_current_key = function () {
  94. return this.current_key;
  95. }
  96. function dict_items_iterator(d) {
  97. var d2 = new DictIter();
  98. var l = [];
  99. for (var i in d) {
  100. l.length += 1;
  101. l[l.length-1] = i;
  102. }
  103. d2.l = l;
  104. d2.current_key = undefined;
  105. return d2;
  106. }
  107. function get_dict_len(d) {
  108. var count;
  109. count = 0;
  110. for (var i in d) {
  111. count += 1;
  112. }
  113. return (count);
  114. }
  115. function StringBuilder() {
  116. this.l = [];
  117. }
  118. StringBuilder.prototype.ll_append_char = function(s) {
  119. this.l.length += 1;
  120. this.l[this.l.length - 1] = s;
  121. }
  122. StringBuilder.prototype.ll_append = function(s) {
  123. this.l.push(s);
  124. }
  125. StringBuilder.prototype.ll_allocate = function(t) {
  126. }
  127. StringBuilder.prototype.ll_build = function() {
  128. var s;
  129. s = "";
  130. for (i in this.l) {
  131. s += this.l[i];
  132. }
  133. return (s);
  134. }
  135. function time() {
  136. var d;
  137. d = new Date();
  138. return d/1000;
  139. }
  140. var main_clock_stuff;
  141. function clock() {
  142. if (main_clock_stuff) {
  143. return (new Date() - main_clock_stuff)/1000;
  144. } else {
  145. main_clock_stuff = new Date();
  146. return 0;
  147. }
  148. }
  149. function substring(s, l, c) {
  150. return (s.substring(l, l+c));
  151. }
  152. function clear_dict(d) {
  153. for (var elem in d) {
  154. delete(d[elem]);
  155. }
  156. }
  157. function findIndexOf(s1, s2, start, end) {
  158. if (start > end || start > s1.length) {
  159. return -1;
  160. }
  161. s1 = s1.substr(start, end-start);
  162. res = s1.indexOf(s2);
  163. if (res == -1) {
  164. return -1;
  165. }
  166. return res + start;
  167. }
  168. function findIndexOfTrue(s1, s2) {
  169. return findIndexOf(s1, s2, 0, s1.length) != -1;
  170. }
  171. function countCharOf(s, c, start, end) {
  172. s = s.substring(start, end);
  173. var i = 0;
  174. for (c1 in s) {
  175. if (s[c1] == c) {
  176. i++;
  177. }
  178. }
  179. return(i);
  180. }
  181. function countOf(s, s1, start, end) {
  182. var ret = findIndexOf(s, s1, start, end);
  183. var i = 0;
  184. var lgt = 1;
  185. if (s1.length > 0) {
  186. lgt = s1.length;
  187. }
  188. while (ret != -1) {
  189. i++;
  190. ret = findIndexOf(s, s1, ret + lgt, end);
  191. }
  192. return (i);
  193. }
  194. function convertToString(stuff) {
  195. if (stuff === undefined) {
  196. return ("undefined");
  197. }
  198. return (stuff.toString());
  199. }
  200. // ends hand written code
  201. function entry_point (argv_0) {
  202. var v0,v1,v2,v3,v4;
  203. var block = 0;
  204. for(;;){
  205. switch(block){
  206. case 0:
  207. v1 = ll_getitem_nonneg__dum_nocheckConst_List_String__Signed ( argv_0,1 );
  208. v2 = ll_getitem_nonneg__dum_nocheckConst_List_String__Signed ( argv_0,2 );
  209. v3 = ll_int__String_Signed ( v2,10 );
  210. v4 = interpret ( v1,v3 );
  211. v0 = 0;
  212. block = 1;
  213. break;
  214. case 1:
  215. return ( v0 );
  216. }
  217. }
  218. }
  219. function interpret (code_0,arg_0) {
  220. var v117,v118,v121,v123,state_0,v124,v125,last_exc_value_0,c_8,state_1,v126,v127,v128,state_2,v129,v130,v131,v132,state_3,v133,v134,c_9,state_4,v136,v137,c_10,state_5,v138,v139,v140,c_11,state_6,v141,v142,v143,v144,v146,v147,v148;
  221. var block = 0;
  222. for(;;){
  223. switch(block){
  224. case 0:
  225. v118 = new rpn_State();
  226. v118.meta = __consts_0.rpn_State_meta;
  227. State___init__ ( v118 );
  228. v118.opush(arg_0);
  229. v123 = ll_striter__String ( code_0 );
  230. state_0 = v118;
  231. v124 = v123;
  232. block = 1;
  233. break;
  234. case 1:
  235. try {
  236. v125 = ll_strnext__Record_index__Signed__string__ ( v124 );
  237. c_8 = v125;
  238. state_1 = state_0;
  239. v126 = v124;
  240. block = 2;
  241. break;
  242. }
  243. catch (exc){
  244. if (isinstanceof(exc, exceptions_StopIteration))
  245. {
  246. v146 = state_0;
  247. block = 8;
  248. break;
  249. }
  250. throw(exc);
  251. }
  252. case 2:
  253. v127 = ('0'<=c_8);
  254. state_2 = state_1;
  255. v129 = v126;
  256. v130 = c_8;
  257. if (v127 == false)
  258. {
  259. block = 3;
  260. break;
  261. }
  262. c_9 = c_8;
  263. state_4 = state_1;
  264. v136 = v126;
  265. block = 5;
  266. break;
  267. case 3:
  268. v131 = (v130=='+');
  269. state_0 = state_2;
  270. v124 = v129;
  271. if (v131 == false)
  272. {
  273. block = 1;
  274. break;
  275. }
  276. state_3 = state_2;
  277. v133 = v129;
  278. block = 4;
  279. break;
  280. case 4:
  281. state_3.oadd();
  282. state_0 = state_3;
  283. v124 = v133;
  284. block = 1;
  285. break;
  286. case 5:
  287. v137 = (c_9<='9');
  288. c_10 = c_9;
  289. state_5 = state_4;
  290. v138 = v136;
  291. v139 = v137;
  292. block = 6;
  293. break;
  294. case 6:
  295. state_2 = state_5;
  296. v129 = v138;
  297. v130 = c_10;
  298. if (v139 == false)
  299. {
  300. block = 3;
  301. break;
  302. }
  303. c_11 = c_10;
  304. state_6 = state_5;
  305. v141 = v138;
  306. block = 7;
  307. break;
  308. case 7:
  309. v143 = c_11.charCodeAt(0);
  310. v144 = (v143-48);
  311. state_6.opush(v144);
  312. state_0 = state_6;
  313. v124 = v141;
  314. block = 1;
  315. break;
  316. case 8:
  317. v148 = v146.ogetresult();
  318. v117 = v148;
  319. block = 9;
  320. break;
  321. case 9:
  322. return ( v117 );
  323. }
  324. }
  325. }
  326. function ll_strnext__Record_index__Signed__string__ (iter_0) {
  327. var v157,v158,v159,v160,v161,v162,v163,iter_1,index_3,string_1,v164,v166,v167,v168,v169,v170,etype_1,evalue_1;
  328. var block = 0;
  329. for(;;){
  330. switch(block){
  331. case 0:
  332. v158 = iter_0.string;
  333. v159 = iter_0.index;
  334. v161 = v158.length;
  335. v162 = (v159>=v161);
  336. iter_1 = iter_0;
  337. index_3 = v159;
  338. string_1 = v158;
  339. if (v162 == false)
  340. {
  341. block = 1;
  342. break;
  343. }
  344. block = 3;
  345. break;
  346. case 1:
  347. v164 = (index_3+1);
  348. iter_1.index = v164;
  349. v167 = string_1.charAt(index_3);
  350. v157 = v167;
  351. block = 2;
  352. break;
  353. case 3:
  354. v168 = __consts_0.exceptions_StopIteration;
  355. v169 = v168.meta;
  356. etype_1 = v169;
  357. evalue_1 = v168;
  358. block = 4;
  359. break;
  360. case 4:
  361. throw(evalue_1);
  362. case 2:
  363. return ( v157 );
  364. }
  365. }
  366. }
  367. function rpn_State () {
  368. this.ostack = __consts_0.const_list;
  369. }
  370. rpn_State.prototype.toString = function (){
  371. return ( '<rpn.State object>' );
  372. }
  373. inherits(rpn_State,Object);
  374. rpn_State.prototype.oadd = function (){
  375. var v172,v173,v174,v175,v176,v177,v178,v179,v180;
  376. var block = 0;
  377. for(;;){
  378. switch(block){
  379. case 0:
  380. v172 = this.ostack;
  381. v174 = ll_pop_default__dum_nocheckConst_List_Signed_ ( v172 );
  382. v175 = this.ostack;
  383. v177 = ll_pop_default__dum_nocheckConst_List_Signed_ ( v175 );
  384. v178 = this.ostack;
  385. v180 = (v177+v174);
  386. ll_append__List_Signed__Signed ( v178,v180 );
  387. block = 1;
  388. break;
  389. case 1:
  390. return ( undefined );
  391. }
  392. }
  393. }
  394. rpn_State.prototype.ogetresult = function (){
  395. var v202,v203,v204;
  396. var block = 0;
  397. for(;;){
  398. switch(block){
  399. case 0:
  400. v203 = this.ostack;
  401. v204 = ll_getitem__dum_nocheckConst_List_Signed__Signed ( v203,-1 );
  402. v202 = v204;
  403. block = 1;
  404. break;
  405. case 1:
  406. return ( v202 );
  407. }
  408. }
  409. }
  410. rpn_State.prototype.opush = function (value_0){
  411. var v220,v221;
  412. var block = 0;
  413. for(;;){
  414. switch(block){
  415. case 0:
  416. v220 = this.ostack;
  417. ll_append__List_Signed__Signed ( v220,value_0 );
  418. block = 1;
  419. break;
  420. case 1:
  421. return ( undefined );
  422. }
  423. }
  424. }
  425. rpn_State.prototype.o__init__ = function (){
  426. var v150;
  427. var block = 0;
  428. for(;;){
  429. switch(block){
  430. case 0:
  431. v150 = new Array();
  432. v150.length = 0;
  433. this.ostack = v150;
  434. block = 1;
  435. break;
  436. case 1:
  437. return ( undefined );
  438. }
  439. }
  440. }
  441. function ll_getitem_nonneg__dum_nocheckConst_List_String__Signed (l_0,index_0) {
  442. var v5,v6,l_1,index_1,v8,v9,v10,index_2,v12,v13,v14;
  443. var block = 0;
  444. for(;;){
  445. switch(block){
  446. case 0:
  447. v6 = (index_0>=0);
  448. l_1 = l_0;
  449. index_1 = index_0;
  450. block = 1;
  451. break;
  452. case 1:
  453. v9 = l_1.length;
  454. v10 = (index_1<v9);
  455. index_2 = index_1;
  456. v12 = l_1;
  457. block = 2;
  458. break;
  459. case 2:
  460. v14 = v12[index_2];
  461. v5 = v14;
  462. block = 3;
  463. break;
  464. case 3:
  465. return ( v5 );
  466. }
  467. }
  468. }
  469. function Object_meta () {
  470. this.class_ = __consts_0.None;
  471. }
  472. Object_meta.prototype.toString = function (){
  473. return ( '<Object_meta object>' );
  474. }
  475. function rpn_State_meta () {
  476. }
  477. rpn_State_meta.prototype.toString = function (){
  478. return ( '<rpn.State_meta object>' );
  479. }
  480. inherits(rpn_State_meta,Object_meta);
  481. function ll_pop_default__dum_nocheckConst_List_Signed_ (l_2) {
  482. var v182,v183,v184,l_3,length_0,v185,v187,v188,v189,res_0,newlength_0,v191,v192;
  483. var block = 0;
  484. for(;;){
  485. switch(block){
  486. case 0:
  487. v184 = l_2.length;
  488. l_3 = l_2;
  489. length_0 = v184;
  490. block = 1;
  491. break;
  492. case 1:
  493. v185 = (length_0>0);
  494. v187 = (length_0-1);
  495. v189 = l_3[v187];
  496. ll_null_item__List_Signed_ ( l_3 );
  497. res_0 = v189;
  498. newlength_0 = v187;
  499. v191 = l_3;
  500. block = 2;
  501. break;
  502. case 2:
  503. v191.length = newlength_0;
  504. v182 = res_0;
  505. block = 3;
  506. break;
  507. case 3:
  508. return ( v182 );
  509. }
  510. }
  511. }
  512. function exceptions_Exception () {
  513. }
  514. exceptions_Exception.prototype.toString = function (){
  515. return ( '<exceptions.Exception object>' );
  516. }
  517. inherits(exceptions_Exception,Object);
  518. function ll_getitem__dum_nocheckConst_List_Signed__Signed (l_5,index_4) {
  519. var v205,v206,v207,v208,v209,l_6,index_5,length_1,v210,v212,index_6,v214,v215,v216,l_7,length_2,v217,v218;
  520. var block = 0;
  521. for(;;){
  522. switch(block){
  523. case 0:
  524. v207 = l_5.length;
  525. v208 = (index_4<0);
  526. l_6 = l_5;
  527. index_5 = index_4;
  528. length_1 = v207;
  529. if (v208 == false)
  530. {
  531. block = 1;
  532. break;
  533. }
  534. l_7 = l_5;
  535. length_2 = v207;
  536. v217 = index_4;
  537. block = 4;
  538. break;
  539. case 1:
  540. v210 = (index_5>=0);
  541. v212 = (index_5<length_1);
  542. index_6 = index_5;
  543. v214 = l_6;
  544. block = 2;
  545. break;
  546. case 2:
  547. v216 = v214[index_6];
  548. v205 = v216;
  549. block = 3;
  550. break;
  551. case 4:
  552. v218 = (v217+length_2);
  553. l_6 = l_7;
  554. index_5 = v218;
  555. length_1 = length_2;
  556. block = 1;
  557. break;
  558. case 3:
  559. return ( v205 );
  560. }
  561. }
  562. }
  563. function ll_append__List_Signed__Signed (l_4,newitem_0) {
  564. var v195,v196,v197,v198,v200;
  565. var block = 0;
  566. for(;;){
  567. switch(block){
  568. case 0:
  569. v196 = l_4.length;
  570. v198 = (v196+1);
  571. l_4.length = v198;
  572. l_4[v196]=newitem_0;
  573. block = 1;
  574. break;
  575. case 1:
  576. return ( undefined );
  577. }
  578. }
  579. }
  580. function ll_int__String_Signed (s_0,base_0) {
  581. var v15,v16,v17,v18,v19,v20,etype_0,evalue_0,s_1,base_1,v21,s_2,base_2,v22,v23,s_3,base_3,v24,v25,s_4,base_4,i_0,strlen_0,v26,v27,s_5,base_5,i_1,strlen_1,v28,v29,v30,v31,v32,s_6,base_6,i_2,strlen_2,v33,v34,v35,v36,s_7,base_7,i_3,strlen_3,v37,v38,v39,v40,s_8,base_8,i_4,sign_0,strlen_4,v41,v42,s_9,base_9,val_0,i_5,sign_1,oldpos_0,strlen_5,v43,v44,s_10,val_1,i_6,sign_2,strlen_6,v45,v46,v47,s_11,val_2,i_7,sign_3,strlen_7,v48,v49,val_3,sign_4,v50,v51,v52,v53,v54,v55,v56,v57,v58,v59,s_12,val_4,i_8,sign_5,strlen_8,v60,v61,v62,v63,s_13,val_5,sign_6,strlen_9,v64,v65,v66,v67,v68,s_14,base_10,val_6,i_9,sign_7,oldpos_1,strlen_10,v69,v70,v71,v72,v73,s_15,base_11,c_0,val_7,i_10,sign_8,oldpos_2,strlen_11,v74,v75,s_16,base_12,c_1,val_8,i_11,sign_9,oldpos_3,strlen_12,v76,v77,s_17,base_13,c_2,val_9,i_12,sign_10,oldpos_4,strlen_13,v78,s_18,base_14,c_3,val_10,i_13,sign_11,oldpos_5,strlen_14,v79,v80,s_19,base_15,val_11,i_14,sign_12,oldpos_6,strlen_15,v81,v82,s_20,base_16,val_12,i_15,digit_0,sign_13,oldpos_7,strlen_16,v83,v84,s_21,base_17,i_16,digit_1,sign_14,oldpos_8,strlen_17,v85,v86,v87,v88,s_22,base_18,c_4,val_13,i_17,sign_15,oldpos_9,strlen_18,v89,s_23,base_19,c_5,val_14,i_18,sign_16,oldpos_10,strlen_19,v90,v91,s_24,base_20,val_15,i_19,sign_17,oldpos_11,strlen_20,v92,v93,v94,s_25,base_21,c_6,val_16,i_20,sign_18,oldpos_12,strlen_21,v95,s_26,base_22,c_7,val_17,i_21,sign_19,oldpos_13,strlen_22,v96,v97,s_27,base_23,val_18,i_22,sign_20,oldpos_14,strlen_23,v98,v99,v100,s_28,base_24,i_23,sign_21,strlen_24,v101,v102,v103,v104,s_29,base_25,sign_22,strlen_25,v105,v106,s_30,base_26,strlen_26,v107,v108,s_31,base_27,strlen_27,v109,v110,s_32,base_28,i_24,strlen_28,v111,v112,v113,v114,s_33,base_29,strlen_29,v115,v116;
  582. var block = 0;
  583. for(;;){
  584. switch(block){
  585. case 0:
  586. v16 = (2<=base_0);
  587. if (v16 == false)
  588. {
  589. block = 1;
  590. break;
  591. }
  592. s_1 = s_0;
  593. base_1 = base_0;
  594. block = 3;
  595. break;
  596. case 1:
  597. v18 = __consts_0.exceptions_ValueError;
  598. v19 = v18.meta;
  599. etype_0 = v19;
  600. evalue_0 = v18;
  601. block = 2;
  602. break;
  603. case 3:
  604. v21 = (base_1<=36);
  605. s_2 = s_1;
  606. base_2 = base_1;
  607. v22 = v21;
  608. block = 4;
  609. break;
  610. case 4:
  611. if (v22 == false)
  612. {
  613. block = 1;
  614. break;
  615. }
  616. s_3 = s_2;
  617. base_3 = base_2;
  618. block = 5;
  619. break;
  620. case 5:
  621. v25 = s_3.length;
  622. s_4 = s_3;
  623. base_4 = base_3;
  624. i_0 = 0;
  625. strlen_0 = v25;
  626. block = 6;
  627. break;
  628. case 6:
  629. v26 = (i_0<strlen_0);
  630. s_5 = s_4;
  631. base_5 = base_4;
  632. i_1 = i_0;
  633. strlen_1 = strlen_0;
  634. if (v26 == false)
  635. {
  636. block = 7;
  637. break;
  638. }
  639. s_32 = s_4;
  640. base_28 = base_4;
  641. i_24 = i_0;
  642. strlen_28 = strlen_0;
  643. block = 40;
  644. break;
  645. case 7:
  646. v28 = (i_1<strlen_1);
  647. if (v28 == false)
  648. {
  649. block = 8;
  650. break;
  651. }
  652. s_6 = s_5;
  653. base_6 = base_5;
  654. i_2 = i_1;
  655. strlen_2 = strlen_1;
  656. block = 9;
  657. break;
  658. case 8:
  659. v30 = __consts_0.exceptions_ValueError;
  660. v31 = v30.meta;
  661. etype_0 = v31;
  662. evalue_0 = v30;
  663. block = 2;
  664. break;
  665. case 9:
  666. v34 = s_6.charAt(i_2);
  667. v35 = (v34=='-');
  668. s_7 = s_6;
  669. base_7 = base_6;
  670. i_3 = i_2;
  671. strlen_3 = strlen_2;
  672. if (v35 == false)
  673. {
  674. block = 10;
  675. break;
  676. }
  677. s_31 = s_6;
  678. base_27 = base_6;
  679. strlen_27 = strlen_2;
  680. v109 = i_2;
  681. block = 39;
  682. break;
  683. case 10:
  684. v38 = s_7.charAt(i_3);
  685. v39 = (v38=='+');
  686. s_8 = s_7;
  687. base_8 = base_7;
  688. i_4 = i_3;
  689. sign_0 = 1;
  690. strlen_4 = strlen_3;
  691. if (v39 == false)
  692. {
  693. block = 11;
  694. break;
  695. }
  696. s_30 = s_7;
  697. base_26 = base_7;
  698. strlen_26 = strlen_3;
  699. v107 = i_3;
  700. block = 38;
  701. break;
  702. case 11:
  703. v41 = (i_4<strlen_4);
  704. s_9 = s_8;
  705. base_9 = base_8;
  706. val_0 = 0;
  707. i_5 = i_4;
  708. sign_1 = sign_0;
  709. oldpos_0 = i_4;
  710. strlen_5 = strlen_4;
  711. if (v41 == false)
  712. {
  713. block = 12;
  714. break;
  715. }
  716. s_28 = s_8;
  717. base_24 = base_8;
  718. i_23 = i_4;
  719. sign_21 = sign_0;
  720. strlen_24 = strlen_4;
  721. block = 36;
  722. break;
  723. case 12:
  724. v43 = (i_5<strlen_5);
  725. s_10 = s_9;
  726. val_1 = val_0;
  727. i_6 = i_5;
  728. sign_2 = sign_1;
  729. strlen_6 = strlen_5;
  730. v45 = oldpos_0;
  731. if (v43 == false)
  732. {
  733. block = 13;
  734. break;
  735. }
  736. s_14 = s_9;
  737. base_10 = base_9;
  738. val_6 = val_0;
  739. i_9 = i_5;
  740. sign_7 = sign_1;
  741. oldpos_1 = oldpos_0;
  742. strlen_10 = strlen_5;
  743. block = 22;
  744. break;
  745. case 13:
  746. v46 = (i_6==v45);
  747. s_11 = s_10;
  748. val_2 = val_1;
  749. i_7 = i_6;
  750. sign_3 = sign_2;
  751. strlen_7 = strlen_6;
  752. if (v46 == false)
  753. {
  754. block = 14;
  755. break;
  756. }
  757. block = 21;
  758. break;
  759. case 14:
  760. v48 = (i_7<strlen_7);
  761. val_3 = val_2;
  762. sign_4 = sign_3;
  763. v50 = i_7;
  764. v51 = strlen_7;
  765. if (v48 == false)
  766. {
  767. block = 15;
  768. break;
  769. }
  770. s_12 = s_11;
  771. val_4 = val_2;
  772. i_8 = i_7;
  773. sign_5 = sign_3;
  774. strlen_8 = strlen_7;
  775. block = 19;
  776. break;
  777. case 15:
  778. v52 = (v50==v51);
  779. if (v52 == false)
  780. {
  781. block = 16;
  782. break;
  783. }
  784. v57 = sign_4;
  785. v58 = val_3;
  786. block = 17;
  787. break;
  788. case 16:
  789. v54 = __consts_0.exceptions_ValueError;
  790. v55 = v54.meta;
  791. etype_0 = v55;
  792. evalue_0 = v54;
  793. block = 2;
  794. break;
  795. case 17:
  796. v59 = (v57*v58);
  797. v15 = v59;
  798. block = 18;
  799. break;
  800. case 19:
  801. v61 = s_12.charAt(i_8);
  802. v62 = (v61==' ');
  803. val_3 = val_4;
  804. sign_4 = sign_5;
  805. v50 = i_8;
  806. v51 = strlen_8;
  807. if (v62 == false)
  808. {
  809. block = 15;
  810. break;
  811. }
  812. s_13 = s_12;
  813. val_5 = val_4;
  814. sign_6 = sign_5;
  815. strlen_9 = strlen_8;
  816. v64 = i_8;
  817. block = 20;
  818. break;
  819. case 20:
  820. v65 = (v64+1);
  821. s_11 = s_13;
  822. val_2 = val_5;
  823. i_7 = v65;
  824. sign_3 = sign_6;
  825. strlen_7 = strlen_9;
  826. block = 14;
  827. break;
  828. case 21:
  829. v66 = __consts_0.exceptions_ValueError;
  830. v67 = v66.meta;
  831. etype_0 = v67;
  832. evalue_0 = v66;
  833. block = 2;
  834. break;
  835. case 22:
  836. v70 = s_14.charAt(i_9);
  837. v71 = v70.charCodeAt(0);
  838. v72 = (97<=v71);
  839. s_15 = s_14;
  840. base_11 = base_10;
  841. c_0 = v71;
  842. val_7 = val_6;
  843. i_10 = i_9;
  844. sign_8 = sign_7;
  845. oldpos_2 = oldpos_1;
  846. strlen_11 = strlen_10;
  847. if (v72 == false)
  848. {
  849. block = 23;
  850. break;
  851. }
  852. s_25 = s_14;
  853. base_21 = base_10;
  854. c_6 = v71;
  855. val_16 = val_6;
  856. i_20 = i_9;
  857. sign_18 = sign_7;
  858. oldpos_12 = oldpos_1;
  859. strlen_21 = strlen_10;
  860. block = 33;
  861. break;
  862. case 23:
  863. v74 = (65<=c_0);
  864. s_16 = s_15;
  865. base_12 = base_11;
  866. c_1 = c_0;
  867. val_8 = val_7;
  868. i_11 = i_10;
  869. sign_9 = sign_8;
  870. oldpos_3 = oldpos_2;
  871. strlen_12 = strlen_11;
  872. if (v74 == false)
  873. {
  874. block = 24;
  875. break;
  876. }
  877. s_22 = s_15;
  878. base_18 = base_11;
  879. c_4 = c_0;
  880. val_13 = val_7;
  881. i_17 = i_10;
  882. sign_15 = sign_8;
  883. oldpos_9 = oldpos_2;
  884. strlen_18 = strlen_11;
  885. block = 30;
  886. break;
  887. case 24:
  888. v76 = (48<=c_1);
  889. s_10 = s_16;
  890. val_1 = val_8;
  891. i_6 = i_11;
  892. sign_2 = sign_9;
  893. strlen_6 = strlen_12;
  894. v45 = oldpos_3;
  895. if (v76 == false)
  896. {
  897. block = 13;
  898. break;
  899. }
  900. s_17 = s_16;
  901. base_13 = base_12;
  902. c_2 = c_1;
  903. val_9 = val_8;
  904. i_12 = i_11;
  905. sign_10 = sign_9;
  906. oldpos_4 = oldpos_3;
  907. strlen_13 = strlen_12;
  908. block = 25;
  909. break;
  910. case 25:
  911. v78 = (c_2<=57);
  912. s_18 = s_17;
  913. base_14 = base_13;
  914. c_3 = c_2;
  915. val_10 = val_9;
  916. i_13 = i_12;
  917. sign_11 = sign_10;
  918. oldpos_5 = oldpos_4;
  919. strlen_14 = strlen_13;
  920. v79 = v78;
  921. block = 26;
  922. break;
  923. case 26:
  924. s_10 = s_18;
  925. val_1 = val_10;
  926. i_6 = i_13;
  927. sign_2 = sign_11;
  928. strlen_6 = strlen_14;
  929. v45 = oldpos_5;
  930. if (v79 == false)
  931. {
  932. block = 13;
  933. break;
  934. }
  935. s_19 = s_18;
  936. base_15 = base_14;
  937. val_11 = val_10;
  938. i_14 = i_13;
  939. sign_12 = sign_11;
  940. oldpos_6 = oldpos_5;
  941. strlen_15 = strlen_14;
  942. v81 = c_3;
  943. block = 27;
  944. break;
  945. case 27:
  946. v82 = (v81-48);
  947. s_20 = s_19;
  948. base_16 = base_15;
  949. val_12 = val_11;
  950. i_15 = i_14;
  951. digit_0 = v82;
  952. sign_13 = sign_12;
  953. oldpos_7 = oldpos_6;
  954. strlen_16 = strlen_15;
  955. block = 28;
  956. break;
  957. case 28:
  958. v83 = (digit_0>=base_16);
  959. s_21 = s_20;
  960. base_17 = base_16;
  961. i_16 = i_15;
  962. digit_1 = digit_0;
  963. sign_14 = sign_13;
  964. oldpos_8 = oldpos_7;
  965. strlen_17 = strlen_16;
  966. v85 = val_12;
  967. if (v83 == false)
  968. {
  969. block = 29;
  970. break;
  971. }
  972. s_10 = s_20;
  973. val_1 = val_12;
  974. i_6 = i_15;
  975. sign_2 = sign_13;
  976. strlen_6 = strlen_16;
  977. v45 = oldpos_7;
  978. block = 13;
  979. break;
  980. case 29:
  981. v86 = (v85*base_17);
  982. v87 = (v86+digit_1);
  983. v88 = (i_16+1);
  984. s_9 = s_21;
  985. base_9 = base_17;
  986. val_0 = v87;
  987. i_5 = v88;
  988. sign_1 = sign_14;
  989. oldpos_0 = oldpos_8;
  990. strlen_5 = strlen_17;
  991. block = 12;
  992. break;
  993. case 30:
  994. v89 = (c_4<=90);
  995. s_23 = s_22;
  996. base_19 = base_18;
  997. c_5 = c_4;
  998. val_14 = val_13;
  999. i_18 = i_17;
  1000. sign_16 = sign_15;
  1001. oldpos_10 = oldpos_9;
  1002. strlen_19 = strlen_18;
  1003. v90 = v89;
  1004. block = 31;
  1005. break;
  1006. case 31:
  1007. s_16 = s_23;
  1008. base_12 = base_19;
  1009. c_1 = c_5;
  1010. val_8 = val_14;
  1011. i_11 = i_18;
  1012. sign_9 = sign_16;
  1013. oldpos_3 = oldpos_10;
  1014. strlen_12 = strlen_19;
  1015. if (v90 == false)
  1016. {
  1017. block = 24;
  1018. break;
  1019. }
  1020. s_24 = s_23;
  1021. base_20 = base_19;
  1022. val_15 = val_14;
  1023. i_19 = i_18;
  1024. sign_17 = sign_16;
  1025. oldpos_11 = oldpos_10;
  1026. strlen_20 = strlen_19;
  1027. v92 = c_5;
  1028. block = 32;
  1029. break;
  1030. case 32:
  1031. v93 = (v92-65);
  1032. v94 = (v93+10);
  1033. s_20 = s_24;
  1034. base_16 = base_20;
  1035. val_12 = val_15;
  1036. i_15 = i_19;
  1037. digit_0 = v94;
  1038. sign_13 = sign_17;
  1039. oldpos_7 = oldpos_11;
  1040. strlen_16 = strlen_20;
  1041. block = 28;
  1042. break;
  1043. case 33:
  1044. v95 = (c_6<=122);
  1045. s_26 = s_25;
  1046. base_22 = base_21;
  1047. c_7 = c_6;
  1048. val_17 = val_16;
  1049. i_21 = i_20;
  1050. sign_19 = sign_18;
  1051. oldpos_13 = oldpos_12;
  1052. strlen_22 = strlen_21;
  1053. v96 = v95;
  1054. block = 34;
  1055. break;
  1056. case 34:
  1057. s_15 = s_26;
  1058. base_11 = base_22;
  1059. c_0 = c_7;
  1060. val_7 = val_17;
  1061. i_10 = i_21;
  1062. sign_8 = sign_19;
  1063. oldpos_2 = oldpos_13;
  1064. strlen_11 = strlen_22;
  1065. if (v96 == false)
  1066. {
  1067. block = 23;
  1068. break;
  1069. }
  1070. s_27 = s_26;
  1071. base_23 = base_22;
  1072. val_18 = val_17;
  1073. i_22 = i_21;
  1074. sign_20 = sign_19;
  1075. oldpos_14 = oldpos_13;
  1076. strlen_23 = strlen_22;
  1077. v98 = c_7;
  1078. block = 35;
  1079. break;
  1080. case 35:
  1081. v99 = (v98-97);
  1082. v100 = (v99+10);
  1083. s_20 = s_27;
  1084. base_16 = base_23;
  1085. val_12 = val_18;
  1086. i_15 = i_22;
  1087. digit_0 = v100;
  1088. sign_13 = sign_20;
  1089. oldpos_7 = oldpos_14;
  1090. strlen_16 = strlen_23;
  1091. block = 28;
  1092. break;
  1093. case 36:
  1094. v102 = s_28.charAt(i_23);
  1095. v103 = (v102==' ');
  1096. s_9 = s_28;
  1097. base_9 = base_24;
  1098. val_0 = 0;
  1099. i_5 = i_23;
  1100. sign_1 = sign_21;
  1101. oldpos_0 = i_23;
  1102. strlen_5 = strlen_24;
  1103. if (v103 == false)
  1104. {
  1105. block = 12;
  1106. break;
  1107. }
  1108. s_29 = s_28;
  1109. base_25 = base_24;
  1110. sign_22 = sign_21;
  1111. strlen_25 = strlen_24;
  1112. v105 = i_23;
  1113. block = 37;
  1114. break;
  1115. case 37:
  1116. v106 = (v105+1);
  1117. s_8 = s_29;
  1118. base_8 = base_25;
  1119. i_4 = v106;
  1120. sign_0 = sign_22;
  1121. strlen_4 = strlen_25;
  1122. block = 11;
  1123. break;
  1124. case 38:
  1125. v108 = (v107+1);
  1126. s_8 = s_30;
  1127. base_8 = base_26;
  1128. i_4 = v108;
  1129. sign_0 = 1;
  1130. strlen_4 = strlen_26;
  1131. block = 11;
  1132. break;
  1133. case 39:
  1134. v110 = (v109+1);
  1135. s_8 = s_31;
  1136. base_8 = base_27;
  1137. i_4 = v110;
  1138. sign_0 = -1;
  1139. strlen_4 = strlen_27;
  1140. block = 11;
  1141. break;
  1142. case 40:
  1143. v112 = s_32.charAt(i_24);
  1144. v113 = (v112==' ');
  1145. s_5 = s_32;
  1146. base_5 = base_28;
  1147. i_1 = i_24;
  1148. strlen_1 = strlen_28;
  1149. if (v113 == false)
  1150. {
  1151. block = 7;
  1152. break;
  1153. }
  1154. s_33 = s_32;
  1155. base_29 = base_28;
  1156. strlen_29 = strlen_28;
  1157. v115 = i_24;
  1158. block = 41;
  1159. break;
  1160. case 41:
  1161. v116 = (v115+1);
  1162. s_4 = s_33;
  1163. base_4 = base_29;
  1164. i_0 = v116;
  1165. strlen_0 = strlen_29;
  1166. block = 6;
  1167. break;
  1168. case 2:
  1169. throw(evalue_0);
  1170. case 18:
  1171. return ( v15 );
  1172. }
  1173. }
  1174. }
  1175. function ll_null_item__List_Signed_ (lst_0) {
  1176. var block = 0;
  1177. for(;;){
  1178. switch(block){
  1179. case 0:
  1180. undefined;
  1181. block = 1;
  1182. break;
  1183. case 1:
  1184. return ( undefined );
  1185. }
  1186. }
  1187. }
  1188. function exceptions_StandardError () {
  1189. }
  1190. exceptions_StandardError.prototype.toString = function (){
  1191. return ( '<exceptions.StandardError object>' );
  1192. }
  1193. inherits(exceptions_StandardError,exceptions_Exception);
  1194. function exceptions_ValueError () {
  1195. }
  1196. exceptions_ValueError.prototype.toString = function (){
  1197. return ( '<exceptions.ValueError object>' );
  1198. }
  1199. inherits(exceptions_ValueError,exceptions_StandardError);
  1200. function State___init__ (self_0) {
  1201. var v150;
  1202. var block = 0;
  1203. for(;;){
  1204. switch(block){
  1205. case 0:
  1206. v150 = new Array();
  1207. v150.length = 0;
  1208. self_0.ostack = v150;
  1209. block = 1;
  1210. break;
  1211. case 1:
  1212. return ( undefined );
  1213. }
  1214. }
  1215. }
  1216. function ll_striter__String (string_0) {
  1217. var v153,v154;
  1218. var block = 0;
  1219. for(;;){
  1220. switch(block){
  1221. case 0:
  1222. v154 = new Object();
  1223. v154.string = string_0;
  1224. v154.index = 0;
  1225. v153 = v154;
  1226. block = 1;
  1227. break;
  1228. case 1:
  1229. return ( v153 );
  1230. }
  1231. }
  1232. }
  1233. function exceptions_StopIteration () {
  1234. }
  1235. exceptions_StopIteration.prototype.toString = function (){
  1236. return ( '<exceptions.StopIteration object>' );
  1237. }
  1238. inherits(exceptions_StopIteration,exceptions_Exception);
  1239. function exceptions_Exception_meta () {
  1240. }
  1241. exceptions_Exception_meta.prototype.toString = function (){
  1242. return ( '<exceptions.Exception_meta object>' );
  1243. }
  1244. inherits(exceptions_Exception_meta,Object_meta);
  1245. function exceptions_StandardError_meta () {
  1246. }
  1247. exceptions_StandardError_meta.prototype.toString = function (){
  1248. return ( '<exceptions.StandardError_meta object>' );
  1249. }
  1250. inherits(exceptions_StandardError_meta,exceptions_Exception_meta);
  1251. function exceptions_StopIteration_meta () {
  1252. }
  1253. exceptions_StopIteration_meta.prototype.toString = function (){
  1254. return ( '<exceptions.StopIteration_meta object>' );
  1255. }
  1256. inherits(exceptions_StopIteration_meta,exceptions_Exception_meta);
  1257. function exceptions_ValueError_meta () {
  1258. }
  1259. exceptions_ValueError_meta.prototype.toString = function (){
  1260. return ( '<exceptions.ValueError_meta object>' );
  1261. }
  1262. inherits(exceptions_ValueError_meta,exceptions_StandardError_meta);
  1263. __consts_0 = {};
  1264. __consts_0.exceptions_ValueError__5 = exceptions_ValueError;
  1265. __consts_0.exceptions_ValueError_meta = new exceptions_ValueError_meta();
  1266. __consts_0.exceptions_ValueError = new exceptions_ValueError();
  1267. __consts_0.exceptions_StopIteration__7 = exceptions_StopIteration;
  1268. __consts_0.rpn_State = rpn_State;
  1269. __consts_0.rpn_State_meta = new rpn_State_meta();
  1270. __consts_0.exceptions_StopIteration_meta = new exceptions_StopIteration_meta();
  1271. __consts_0.exceptions_StopIteration = new exceptions_StopIteration();
  1272. __consts_0.const_list = undefined;
  1273. __consts_0.exceptions_ValueError_meta.class_ = __consts_0.exceptions_ValueError__5;
  1274. __consts_0.exceptions_ValueError.meta = __consts_0.exceptions_ValueError_meta;
  1275. __consts_0.rpn_State_meta.class_ = __consts_0.rpn_State;
  1276. __consts_0.exceptions_StopIteration_meta.class_ = __consts_0.exceptions_StopIteration__7;
  1277. __consts_0.exceptions_StopIteration.meta = __consts_0.exceptions_StopIteration_meta;