Token list: Cnt Line Type Lexeme 0 1:Token 16: MODULE MODULE 1 1:Token 34: ID sieve 2 1:Token 53: SEMI_COLON ; 3 3:Token 5 : CONST CONST 4 4:Token 34: ID startPrime 5 4:Token 44: EQUAL = 6 4:Token 37: INT_NUM 2 7 4:Token 53: SEMI_COLON ; 8 5:Token 34: ID max 9 5:Token 44: EQUAL = 10 5:Token 37: INT_NUM 51 11 5:Token 53: SEMI_COLON ; 12 7:Token 23: TYPE TYPE 13 8:Token 34: ID ArrayType 14 8:Token 44: EQUAL = 15 8:Token 2 : ARRAY ARRAY 16 8:Token 45: LEFT_BRACK [ 17 8:Token 37: INT_NUM 2 18 8:Token 43: DOT_DOT .. 19 8:Token 37: INT_NUM 51 20 8:Token 51: RIGHT_BRACK ] 21 8:Token 18: OF OF 22 8:Token 13: INTEGER INTEGER 23 8:Token 53: SEMI_COLON ; 24 10:Token 24: VAR VAR 25 11:Token 34: ID newSieve 26 11:Token 40: COLON : 27 11:Token 34: ID ArrayType 28 11:Token 53: SEMI_COLON ; 29 13:Token 20: PROCEDURE PROCEDURE 30 13:Token 34: ID init 31 13:Token 46: LEFT_PAREN ( 32 13:Token 24: VAR VAR 33 13:Token 34: ID newSieve 34 13:Token 40: COLON : 35 13:Token 34: ID ArrayType 36 13:Token 52: RIGHT_PAREN ) 37 13:Token 53: SEMI_COLON ; 38 14:Token 24: VAR VAR 39 15:Token 34: ID index 40 15:Token 40: COLON : 41 15:Token 13: INTEGER INTEGER 42 15:Token 53: SEMI_COLON ; 43 17:Token 3 : BEGIN BEGIN 44 18:Token 34: ID index 45 18:Token 39: ASSIGN := 46 18:Token 34: ID startPrime 47 18:Token 53: SEMI_COLON ; 48 19:Token 14: LOOP LOOP 49 20:Token 12: IF IF 50 20:Token 34: ID index 51 20:Token 55: GRTR_THAN > 52 20:Token 34: ID max 53 20:Token 22: THEN THEN 54 20:Token 10: EXIT EXIT 55 20:Token 9 : END END 56 20:Token 53: SEMI_COLON ; 57 21:Token 34: ID newSieve 58 21:Token 45: LEFT_BRACK [ 59 21:Token 34: ID index 60 21:Token 51: RIGHT_BRACK ] 61 21:Token 39: ASSIGN := 62 21:Token 37: INT_NUM 1 63 21:Token 53: SEMI_COLON ; 64 22:Token 34: ID index 65 22:Token 39: ASSIGN := 66 22:Token 34: ID index 67 22:Token 50: PLUS + 68 22:Token 37: INT_NUM 1 69 22:Token 53: SEMI_COLON ; 70 23:Token 9 : END END 71 23:Token 53: SEMI_COLON ; 72 24:Token 9 : END END 73 24:Token 34: ID init 74 24:Token 53: SEMI_COLON ; 75 27:Token 20: PROCEDURE PROCEDURE 76 27:Token 34: ID calculateLimit 77 27:Token 46: LEFT_PAREN ( 78 27:Token 24: VAR VAR 79 27:Token 34: ID limit 80 27:Token 40: COLON : 81 27:Token 13: INTEGER INTEGER 82 27:Token 53: SEMI_COLON ; 83 27:Token 24: VAR VAR 84 27:Token 34: ID newSieve 85 27:Token 40: COLON : 86 27:Token 34: ID ArrayType 87 27:Token 52: RIGHT_PAREN ) 88 27:Token 53: SEMI_COLON ; 89 29:Token 3 : BEGIN BEGIN 90 30:Token 34: ID limit 91 30:Token 39: ASSIGN := 92 30:Token 37: INT_NUM 1 93 30:Token 53: SEMI_COLON ; 94 31:Token 14: LOOP LOOP 95 32:Token 12: IF IF 96 32:Token 34: ID limit 97 32:Token 48: MULT * 98 32:Token 34: ID limit 99 32:Token 55: GRTR_THAN > 100 32:Token 37: INT_NUM 51 101 32:Token 22: THEN THEN 102 32:Token 10: EXIT EXIT 103 32:Token 9 : END END 104 32:Token 53: SEMI_COLON ; 105 33:Token 34: ID limit 106 33:Token 39: ASSIGN := 107 33:Token 34: ID limit 108 33:Token 50: PLUS + 109 33:Token 37: INT_NUM 1 110 33:Token 53: SEMI_COLON ; 111 34:Token 9 : END END 112 34:Token 53: SEMI_COLON ; 113 35:Token 34: ID limit 114 35:Token 39: ASSIGN := 115 35:Token 34: ID limit 116 35:Token 47: MINUS - 117 35:Token 37: INT_NUM 1 118 35:Token 53: SEMI_COLON ; 119 36:Token 9 : END END 120 36:Token 34: ID calculateLimit 121 36:Token 53: SEMI_COLON ; 122 39:Token 20: PROCEDURE PROCEDURE 123 39:Token 34: ID siftPrimes 124 39:Token 46: LEFT_PAREN ( 125 39:Token 34: ID limit 126 39:Token 41: COMMA , 127 39:Token 34: ID max 128 39:Token 40: COLON : 129 39:Token 13: INTEGER INTEGER 130 39:Token 53: SEMI_COLON ; 131 39:Token 24: VAR VAR 132 39:Token 34: ID newSieve 133 39:Token 40: COLON : 134 39:Token 34: ID ArrayType 135 39:Token 52: RIGHT_PAREN ) 136 39:Token 53: SEMI_COLON ; 137 41:Token 24: VAR VAR 138 42:Token 34: ID currPrime 139 42:Token 41: COMMA , 140 42:Token 34: ID mult 141 42:Token 40: COLON : 142 42:Token 13: INTEGER INTEGER 143 42:Token 53: SEMI_COLON ; 144 44:Token 3 : BEGIN BEGIN 145 45:Token 34: ID currPrime 146 45:Token 39: ASSIGN := 147 45:Token 34: ID startPrime 148 45:Token 53: SEMI_COLON ; 149 47:Token 14: LOOP LOOP 150 48:Token 12: IF IF 151 48:Token 34: ID currPrime 152 48:Token 55: GRTR_THAN > 153 48:Token 34: ID limit 154 48:Token 22: THEN THEN 155 48:Token 10: EXIT EXIT 156 48:Token 9 : END END 157 48:Token 53: SEMI_COLON ; 158 49:Token 34: ID mult 159 49:Token 39: ASSIGN := 160 49:Token 37: INT_NUM 2 161 49:Token 53: SEMI_COLON ; 162 50:Token 14: LOOP LOOP 163 51:Token 12: IF IF 164 51:Token 34: ID mult 165 51:Token 48: MULT * 166 51:Token 34: ID currPrime 167 51:Token 55: GRTR_THAN > 168 51:Token 37: INT_NUM 51 169 51:Token 22: THEN THEN 170 51:Token 10: EXIT EXIT 171 51:Token 9 : END END 172 51:Token 53: SEMI_COLON ; 173 52:Token 34: ID newSieve 174 52:Token 45: LEFT_BRACK [ 175 52:Token 34: ID mult 176 52:Token 48: MULT * 177 52:Token 34: ID currPrime 178 52:Token 51: RIGHT_BRACK ] 179 52:Token 39: ASSIGN := 180 52:Token 37: INT_NUM 0 181 52:Token 53: SEMI_COLON ; 182 53:Token 34: ID mult 183 53:Token 39: ASSIGN := 184 53:Token 34: ID mult 185 53:Token 50: PLUS + 186 53:Token 37: INT_NUM 1 187 53:Token 53: SEMI_COLON ; 188 54:Token 9 : END END 189 54:Token 53: SEMI_COLON ; 190 55:Token 14: LOOP LOOP 191 56:Token 34: ID currPrime 192 56:Token 39: ASSIGN := 193 56:Token 34: ID currPrime 194 56:Token 50: PLUS + 195 56:Token 37: INT_NUM 1 196 56:Token 53: SEMI_COLON ; 197 57:Token 12: IF IF 198 57:Token 34: ID newSieve 199 57:Token 45: LEFT_BRACK [ 200 57:Token 34: ID currPrime 201 57:Token 51: RIGHT_BRACK ] 202 57:Token 49: NOT_EQ <> 203 57:Token 37: INT_NUM 0 204 57:Token 22: THEN THEN 205 57:Token 10: EXIT EXIT 206 57:Token 9 : END END 207 57:Token 53: SEMI_COLON ; 208 58:Token 9 : END END 209 58:Token 53: SEMI_COLON ; 210 59:Token 9 : END END 211 59:Token 53: SEMI_COLON ; 212 60:Token 9 : END END 213 60:Token 34: ID siftPrimes 214 60:Token 53: SEMI_COLON ; 215 63:Token 20: PROCEDURE PROCEDURE 216 63:Token 34: ID printPrimes 217 63:Token 46: LEFT_PAREN ( 218 63:Token 34: ID max 219 63:Token 40: COLON : 220 63:Token 13: INTEGER INTEGER 221 63:Token 53: SEMI_COLON ; 222 63:Token 24: VAR VAR 223 63:Token 34: ID newSieve 224 63:Token 40: COLON : 225 63:Token 34: ID ArrayType 226 63:Token 52: RIGHT_PAREN ) 227 63:Token 53: SEMI_COLON ; 228 64:Token 24: VAR VAR 229 65:Token 34: ID index 230 65:Token 40: COLON : 231 65:Token 13: INTEGER INTEGER 232 65:Token 53: SEMI_COLON ; 233 67:Token 3 : BEGIN BEGIN 234 68:Token 34: ID index 235 68:Token 39: ASSIGN := 236 68:Token 34: ID startPrime 237 68:Token 53: SEMI_COLON ; 238 69:Token 14: LOOP LOOP 239 70:Token 12: IF IF 240 70:Token 34: ID index 241 70:Token 55: GRTR_THAN > 242 70:Token 34: ID max 243 70:Token 22: THEN THEN 244 70:Token 10: EXIT EXIT 245 70:Token 9 : END END 246 70:Token 53: SEMI_COLON ; 247 71:Token 12: IF IF 248 71:Token 34: ID newSieve 249 71:Token 45: LEFT_BRACK [ 250 71:Token 34: ID index 251 71:Token 51: RIGHT_BRACK ] 252 71:Token 44: EQUAL = 253 71:Token 37: INT_NUM 1 254 71:Token 22: THEN THEN 255 72:Token 34: ID IO 256 72:Token 42: DOT . 257 72:Token 34: ID WrInt 258 72:Token 46: LEFT_PAREN ( 259 72:Token 34: ID index 260 72:Token 41: COMMA , 261 72:Token 37: INT_NUM 7 262 72:Token 52: RIGHT_PAREN ) 263 72:Token 53: SEMI_COLON ; 264 73:Token 34: ID IO 265 73:Token 42: DOT . 266 73:Token 34: ID WrLn 267 73:Token 53: SEMI_COLON ; 268 74:Token 9 : END END 269 74:Token 53: SEMI_COLON ; 270 75:Token 34: ID index 271 75:Token 39: ASSIGN := 272 75:Token 34: ID index 273 75:Token 50: PLUS + 274 75:Token 37: INT_NUM 1 275 75:Token 53: SEMI_COLON ; 276 76:Token 9 : END END 277 76:Token 53: SEMI_COLON ; 278 77:Token 9 : END END 279 77:Token 34: ID printPrimes 280 77:Token 53: SEMI_COLON ; 281 81:Token 24: VAR VAR 282 82:Token 34: ID limit 283 82:Token 40: COLON : 284 82:Token 13: INTEGER INTEGER 285 82:Token 53: SEMI_COLON ; 286 84:Token 3 : BEGIN BEGIN 287 86:Token 34: ID init 288 86:Token 46: LEFT_PAREN ( 289 86:Token 34: ID newSieve 290 86:Token 52: RIGHT_PAREN ) 291 86:Token 53: SEMI_COLON ; 292 87:Token 34: ID calculateLimit 293 87:Token 46: LEFT_PAREN ( 294 87:Token 34: ID limit 295 87:Token 41: COMMA , 296 87:Token 34: ID newSieve 297 87:Token 52: RIGHT_PAREN ) 298 87:Token 53: SEMI_COLON ; 299 88:Token 34: ID siftPrimes 300 88:Token 46: LEFT_PAREN ( 301 88:Token 34: ID limit 302 88:Token 41: COMMA , 303 88:Token 34: ID max 304 88:Token 41: COMMA , 305 88:Token 34: ID newSieve 306 88:Token 52: RIGHT_PAREN ) 307 88:Token 53: SEMI_COLON ; 308 89:Token 34: ID printPrimes 309 89:Token 46: LEFT_PAREN ( 310 89:Token 34: ID max 311 89:Token 41: COMMA , 312 89:Token 34: ID newSieve 313 89:Token 52: RIGHT_PAREN ) 314 89:Token 53: SEMI_COLON ; 315 91:Token 9 : END END 316 91:Token 34: ID sieve 317 91:Token 42: DOT . 318 93:Token 61: EOF End of source file