1: program -> PROGRAM 2: ident -> IDENT (primes) 3: semicolon -> SEMICOLON 4: ident -> IDENT (n) 5: declaration2 -> 6: colon -> COLON 7: integer -> INTEGER 8: declaration3 -> integer#7 9: declaration -> ident#4 declaration2#5 colon#6 declaration3#8 10: semicolon -> SEMICOLON 11: ident -> IDENT (a) 12: declaration2 -> 13: colon -> COLON 14: array -> ARRAY 15: l_paren -> L_PAREN 16: number -> NUMBER (1000) 17: r_paren -> R_PAREN 18: of -> OF 19: integer -> INTEGER 20: declaration3 -> array#14 l_paren#15 number#16 r_paren#17 of#18 integer#19 21: declaration -> ident#11 declaration2#12 colon#13 declaration3#20 22: semicolon -> SEMICOLON 23: ident -> IDENT (i) 24: comma -> COMMA 25: ident -> IDENT (j) 26: declaration2 -> 27: declaration2 -> comma#24 ident#25 declaration2#26 28: colon -> COLON 29: integer -> INTEGER 30: declaration3 -> integer#29 31: declaration -> ident#23 declaration2#27 colon#28 declaration3#30 32: semicolon -> SEMICOLON 33: ident -> IDENT (x) 34: comma -> COMMA 35: ident -> IDENT (sqrt_n) 36: declaration2 -> 37: declaration2 -> comma#34 ident#35 declaration2#36 38: colon -> COLON 39: integer -> INTEGER 40: declaration3 -> integer#39 41: declaration -> ident#33 declaration2#37 colon#38 declaration3#40 42: semicolon -> SEMICOLON 43: block2 -> 44: block2 -> statement#41 semicolon#42 block2#43 45: block2 -> statement#31 semicolon#32 block2#44 46: block2 -> statement#21 semicolon#22 block2#45 47: begin_program -> BEGIN_PROGRAM 48: read -> READ 49: ident -> IDENT (n) 50: var -> ident#49 51: statement3 -> 52: statement -> read#48 var#50 statement3#51 53: semicolon -> SEMICOLON 54: ident -> IDENT (x) 55: var -> ident#54 56: assign -> ASSIGN 57: ident -> IDENT (n) 58: var -> ident#57 59: factor -> var#58 60: term2 -> 61: term -> factor#59 term2#60 62: expression2 -> 63: expression -> term#61 expression2#62 64: statement -> var#55 assign#56 expression#63 65: semicolon -> SEMICOLON 66: while -> WHILE 67: ident -> IDENT (x) 68: var -> ident#67 69: factor -> var#68 70: term2 -> 71: term -> factor#69 term2#70 72: expression2 -> 73: expression -> term#71 expression2#72 74: comp -> GT#0 75: ident -> IDENT (n) 76: var -> ident#75 77: factor -> var#76 78: div -> DIV 79: ident -> IDENT (x) 80: var -> ident#79 81: factor -> var#80 82: term2 -> 83: term2 -> div#78 factor#81 term2#82 84: term -> factor#77 term2#83 85: expression2 -> 86: expression -> term#84 expression2#85 87: relation_exp2 -> expression#73 comp#74 expression#86 88: relation_exp -> relation_exp2#87 89: bool_exp2 -> 90: bool_exp -> relation_exp#88 bool_exp2#89 91: loop -> LOOP 92: ident -> IDENT (x) 93: var -> ident#92 94: assign -> ASSIGN 95: l_paren -> L_PAREN 96: ident -> IDENT (x) 97: var -> ident#96 98: factor -> var#97 99: term2 -> 100: term -> factor#98 term2#99 101: add -> ADD 102: ident -> IDENT (n) 103: var -> ident#102 104: factor -> var#103 105: div -> DIV 106: ident -> IDENT (x) 107: var -> ident#106 108: factor -> var#107 109: term2 -> 110: term2 -> div#105 factor#108 term2#109 111: term -> factor#104 term2#110 112: expression2 -> 113: expression2 -> add#101 term#111 expression2#112 114: expression -> term#100 expression2#113 115: r_paren -> R_PAREN 116: factor -> l_paren#95 expression#114 r_paren#115 117: div -> DIV 118: number -> NUMBER (2) 119: factor -> number#118 120: term2 -> 121: term2 -> div#117 factor#119 term2#120 122: term -> factor#116 term2#121 123: expression2 -> 124: expression -> term#122 expression2#123 125: statement -> var#93 assign#94 expression#124 126: semicolon -> SEMICOLON 127: statement2 -> 128: loop -> ENDLOOP 129: statement -> while#66 bool_exp#90 loop#91 statement#125 semicolon#126 statement2#127 endloop#128 130: semicolon -> SEMICOLON 131: ident -> IDENT (sqrt_n) 132: var -> ident#131 133: assign -> ASSIGN 134: ident -> IDENT (x) 135: var -> ident#134 136: factor -> var#135 137: term2 -> 138: term -> factor#136 term2#137 139: expression2 -> 140: expression -> term#138 expression2#139 141: statement -> var#132 assign#133 expression#140 142: semicolon -> SEMICOLON 143: ident -> IDENT (i) 144: var -> ident#143 145: assign -> ASSIGN 146: number -> NUMBER (2) 147: factor -> number#146 148: term2 -> 149: term -> factor#147 term2#148 150: expression2 -> 151: expression -> term#149 expression2#150 152: statement -> var#144 assign#145 expression#151 153: semicolon -> SEMICOLON 154: while -> WHILE 155: ident -> IDENT (i) 156: var -> ident#155 157: factor -> var#156 158: term2 -> 159: term -> factor#157 term2#158 160: expression2 -> 161: expression -> term#159 expression2#160 162: comp -> LTE#0 163: ident -> IDENT (n) 164: var -> ident#163 165: factor -> var#164 166: term2 -> 167: term -> factor#165 term2#166 168: expression2 -> 169: expression -> term#167 expression2#168 170: relation_exp2 -> expression#161 comp#162 expression#169 171: relation_exp -> relation_exp2#170 172: bool_exp2 -> 173: bool_exp -> relation_exp#171 bool_exp2#172 174: loop -> LOOP 175: ident -> IDENT (a) 176: l_paren -> L_PAREN 177: ident -> IDENT (i) 178: var -> ident#177 179: factor -> var#178 180: term2 -> 181: term -> factor#179 term2#180 182: expression2 -> 183: expression -> term#181 expression2#182 184: r_paren -> R_PAREN 185: var -> l_paren#175 expression#176 r_paren#183 186: assign -> ASSIGN 187: number -> NUMBER (0) 188: factor -> number#187 189: term2 -> 190: term -> factor#188 term2#189 191: expression2 -> 192: expression -> term#190 expression2#191 193: statement -> var#185 assign#186 expression#192 194: semicolon -> SEMICOLON 195: ident -> IDENT (i) 196: var -> ident#195 197: assign -> ASSIGN 198: ident -> IDENT (i) 199: var -> ident#198 200: factor -> var#199 201: term2 -> 202: term -> factor#200 term2#201 203: add -> ADD 204: number -> NUMBER (1) 205: factor -> number#204 206: term2 -> 207: term -> factor#205 term2#206 208: expression2 -> 209: expression2 -> add#203 term#207 expression2#208 210: expression -> term#202 expression2#209 211: statement -> var#196 assign#197 expression#210 212: semicolon -> SEMICOLON 213: statement2 -> 214: statement2 -> statement#211 semicolon#212 statement2#213 215: loop -> ENDLOOP 216: statement -> while#154 bool_exp#173 loop#174 statement#193 semicolon#194 statement2#214 endloop#215 217: semicolon -> SEMICOLON 218: ident -> IDENT (i) 219: var -> ident#218 220: assign -> ASSIGN 221: number -> NUMBER (2) 222: factor -> number#221 223: term2 -> 224: term -> factor#222 term2#223 225: expression2 -> 226: expression -> term#224 expression2#225 227: statement -> var#219 assign#220 expression#226 228: semicolon -> SEMICOLON 229: while -> WHILE 230: ident -> IDENT (i) 231: var -> ident#230 232: factor -> var#231 233: term2 -> 234: term -> factor#232 term2#233 235: expression2 -> 236: expression -> term#234 expression2#235 237: comp -> LTE#0 238: ident -> IDENT (sqrt_n) 239: var -> ident#238 240: factor -> var#239 241: term2 -> 242: term -> factor#240 term2#241 243: expression2 -> 244: expression -> term#242 expression2#243 245: relation_exp2 -> expression#236 comp#237 expression#244 246: relation_exp -> relation_exp2#245 247: bool_exp2 -> 248: bool_exp -> relation_exp#246 bool_exp2#247 249: loop -> LOOP 250: if -> IF 251: ident -> IDENT (a) 252: l_paren -> L_PAREN 253: ident -> IDENT (i) 254: var -> ident#253 255: factor -> var#254 256: term2 -> 257: term -> factor#255 term2#256 258: expression2 -> 259: expression -> term#257 expression2#258 260: r_paren -> R_PAREN 261: var -> l_paren#251 expression#252 r_paren#259 262: factor -> var#261 263: term2 -> 264: term -> factor#262 term2#263 265: expression2 -> 266: expression -> term#264 expression2#265 267: comp -> EQ#0 268: number -> NUMBER (0) 269: factor -> number#268 270: term2 -> 271: term -> factor#269 term2#270 272: expression2 -> 273: expression -> term#271 expression2#272 274: relation_exp2 -> expression#266 comp#267 expression#273 275: relation_exp -> relation_exp2#274 276: bool_exp2 -> 277: bool_exp -> relation_exp#275 bool_exp2#276 278: then -> THEN 279: ident -> IDENT (j) 280: var -> ident#279 281: assign -> ASSIGN 282: ident -> IDENT (i) 283: var -> ident#282 284: factor -> var#283 285: term2 -> 286: term -> factor#284 term2#285 287: add -> ADD 288: ident -> IDENT (i) 289: var -> ident#288 290: factor -> var#289 291: term2 -> 292: term -> factor#290 term2#291 293: expression2 -> 294: expression2 -> add#287 term#292 expression2#293 295: expression -> term#286 expression2#294 296: statement -> var#280 assign#281 expression#295 297: semicolon -> SEMICOLON 298: while -> WHILE 299: ident -> IDENT (j) 300: var -> ident#299 301: factor -> var#300 302: term2 -> 303: term -> factor#301 term2#302 304: expression2 -> 305: expression -> term#303 expression2#304 306: comp -> LTE#0 307: ident -> IDENT (n) 308: var -> ident#307 309: factor -> var#308 310: term2 -> 311: term -> factor#309 term2#310 312: expression2 -> 313: expression -> term#311 expression2#312 314: relation_exp2 -> expression#305 comp#306 expression#313 315: relation_exp -> relation_exp2#314 316: bool_exp2 -> 317: bool_exp -> relation_exp#315 bool_exp2#316 318: loop -> LOOP 319: ident -> IDENT (a) 320: l_paren -> L_PAREN 321: ident -> IDENT (j) 322: var -> ident#321 323: factor -> var#322 324: term2 -> 325: term -> factor#323 term2#324 326: expression2 -> 327: expression -> term#325 expression2#326 328: r_paren -> R_PAREN 329: var -> l_paren#319 expression#320 r_paren#327 330: assign -> ASSIGN 331: number -> NUMBER (1) 332: factor -> number#331 333: term2 -> 334: term -> factor#332 term2#333 335: expression2 -> 336: expression -> term#334 expression2#335 337: statement -> var#329 assign#330 expression#336 338: semicolon -> SEMICOLON 339: ident -> IDENT (j) 340: var -> ident#339 341: assign -> ASSIGN 342: ident -> IDENT (j) 343: var -> ident#342 344: factor -> var#343 345: term2 -> 346: term -> factor#344 term2#345 347: add -> ADD 348: ident -> IDENT (i) 349: var -> ident#348 350: factor -> var#349 351: term2 -> 352: term -> factor#350 term2#351 353: expression2 -> 354: expression2 -> add#347 term#352 expression2#353 355: expression -> term#346 expression2#354 356: statement -> var#340 assign#341 expression#355 357: semicolon -> SEMICOLON 358: statement2 -> 359: statement2 -> statement#356 semicolon#357 statement2#358 360: loop -> ENDLOOP 361: statement -> while#298 bool_exp#317 loop#318 statement#337 semicolon#338 statement2#359 endloop#360 362: semicolon -> SEMICOLON 363: statement2 -> 364: statement2 -> statement#361 semicolon#362 statement2#363 365: endif -> ENDIF 366: statement -> if#250 bool_exp#277 then#278 statement#296 semicolon#297 statement2#364 endif#365 367: semicolon -> SEMICOLON 368: ident -> IDENT (i) 369: var -> ident#368 370: assign -> ASSIGN 371: ident -> IDENT (i) 372: var -> ident#371 373: factor -> var#372 374: term2 -> 375: term -> factor#373 term2#374 376: add -> ADD 377: number -> NUMBER (1) 378: factor -> number#377 379: term2 -> 380: term -> factor#378 term2#379 381: expression2 -> 382: expression2 -> add#376 term#380 expression2#381 383: expression -> term#375 expression2#382 384: statement -> var#369 assign#370 expression#383 385: semicolon -> SEMICOLON 386: statement2 -> 387: statement2 -> statement#384 semicolon#385 statement2#386 388: loop -> ENDLOOP 389: statement -> while#229 bool_exp#248 loop#249 statement#366 semicolon#367 statement2#387 endloop#388 390: semicolon -> SEMICOLON 391: ident -> IDENT (i) 392: var -> ident#391 393: assign -> ASSIGN 394: number -> NUMBER (2) 395: factor -> number#394 396: term2 -> 397: term -> factor#395 term2#396 398: expression2 -> 399: expression -> term#397 expression2#398 400: statement -> var#392 assign#393 expression#399 401: semicolon -> SEMICOLON 402: while -> WHILE 403: ident -> IDENT (i) 404: var -> ident#403 405: factor -> var#404 406: term2 -> 407: term -> factor#405 term2#406 408: expression2 -> 409: expression -> term#407 expression2#408 410: comp -> LTE#0 411: ident -> IDENT (n) 412: var -> ident#411 413: factor -> var#412 414: term2 -> 415: term -> factor#413 term2#414 416: expression2 -> 417: expression -> term#415 expression2#416 418: relation_exp2 -> expression#409 comp#410 expression#417 419: relation_exp -> relation_exp2#418 420: bool_exp2 -> 421: bool_exp -> relation_exp#419 bool_exp2#420 422: loop -> LOOP 423: if -> IF 424: ident -> IDENT (a) 425: l_paren -> L_PAREN 426: ident -> IDENT (i) 427: var -> ident#426 428: factor -> var#427 429: term2 -> 430: term -> factor#428 term2#429 431: expression2 -> 432: expression -> term#430 expression2#431 433: r_paren -> R_PAREN 434: var -> l_paren#424 expression#425 r_paren#432 435: factor -> var#434 436: term2 -> 437: term -> factor#435 term2#436 438: expression2 -> 439: expression -> term#437 expression2#438 440: comp -> EQ#0 441: number -> NUMBER (0) 442: factor -> number#441 443: term2 -> 444: term -> factor#442 term2#443 445: expression2 -> 446: expression -> term#444 expression2#445 447: relation_exp2 -> expression#439 comp#440 expression#446 448: relation_exp -> relation_exp2#447 449: bool_exp2 -> 450: bool_exp -> relation_exp#448 bool_exp2#449 451: then -> THEN 452: write -> WRITE 453: ident -> IDENT (i) 454: var -> ident#453 455: statement3 -> 456: statement -> write#452 var#454 statement3#455 457: semicolon -> SEMICOLON 458: statement2 -> 459: endif -> ENDIF 460: statement -> if#423 bool_exp#450 then#451 statement#456 semicolon#457 statement2#458 endif#459 461: semicolon -> SEMICOLON 462: ident -> IDENT (i) 463: var -> ident#462 464: assign -> ASSIGN 465: ident -> IDENT (i) 466: var -> ident#465 467: factor -> var#466 468: term2 -> 469: term -> factor#467 term2#468 470: add -> ADD 471: number -> NUMBER (1) 472: factor -> number#471 473: term2 -> 474: term -> factor#472 term2#473 475: expression2 -> 476: expression2 -> add#470 term#474 expression2#475 477: expression -> term#469 expression2#476 478: statement -> var#463 assign#464 expression#477 479: semicolon -> SEMICOLON 480: statement2 -> 481: statement2 -> statement#478 semicolon#479 statement2#480 482: loop -> ENDLOOP 483: statement -> while#402 bool_exp#421 loop#422 statement#460 semicolon#461 statement2#481 endloop#482 484: semicolon -> SEMICOLON 485: block3 -> 486: block3 -> statement#483 semicolon#484 block3#485 487: block3 -> statement#400 semicolon#401 block3#486 488: block3 -> statement#389 semicolon#390 block3#487 489: block3 -> statement#227 semicolon#228 block3#488 490: block3 -> statement#216 semicolon#217 block3#489 491: block3 -> statement#152 semicolon#153 block3#490 492: block3 -> statement#141 semicolon#142 block3#491 493: block3 -> statement#129 semicolon#130 block3#492 494: block3 -> statement#64 semicolon#65 block3#493 495: block -> declaration#9 semicolon#10 block2#46 begin_program#47 statement#52 semicolon#53 block3#494 496: end_program -> END_PROGRAM 497: prog_start -> program#1 ident#2 semicolon#3 block#495 end_program#496