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