home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / style / prof.src < prev    next >
Encoding:
Text File  |  1988-05-03  |  249.3 KB  |  5,166 lines

  1.  
  2. -------- SIMTEL20 Ada Software Repository Prologue ------------
  3. --                                                           -*
  4. -- Unit name    : Statement Profile Report
  5. -- Version      : 1.0
  6. -- Contact      : Lt. Colonel Falgiano
  7. --              : ESD/SCW
  8. --              : Hanscom AFB, MA  01731
  9. -- Author       : Bill Toscano, Michael Gordon
  10. --              : Intermetrics, Inc, 
  11. --              : 733 Concord Ave
  12. --              : Cambridge, MA 02138 
  13. -- DDN Address  :
  14. -- Copyright    : (c) 1985 Intermetrics, Inc. 
  15. -- Date created : 15 October 1985 
  16. -- Release date : 5 March 1985 
  17. -- Last update  : 17 March 1985 
  18. --                                                           -*
  19. ---------------------------------------------------------------
  20. --                                                           -*
  21. -- Keywords     : 
  22. ----------------:
  23. --
  24. -- Abstract     : The Statement Profiler counts every instance of each of  
  25. ----------------: the various types of Ada statements in the given program unit
  26. ----------------: bodies, including comments, distinguishing whole-line comments
  27. ----------------: from comments on a line of code.  From these raw counts,      
  28. ----------------: a series of ratios and percentages can then be computed and  
  29. ----------------: shown in a table.  The raw counts or the profile table is   
  30. ----------------: written to the default output file.  This information can
  31. ----------------: then be used to determine when programs are inadequately
  32. ----------------: commented or overly complex.
  33. ----------------: 
  34. ----------------: This tool was developed as a precursor for 
  35. ----------------: the WMCCS Information System (WIS).  An
  36. ----------------: executable version of the tool has been 
  37. ----------------: demonstrated.  This source code has sub-
  38. ----------------: sequently been recompiled but has not under-
  39. ----------------: gone extensive testing.
  40. ----------------:
  41. --                                                           -*
  42. ------------------ Revision history ---------------------------
  43. --                                                           -*
  44. -- DATE         VERSION AUTHOR                  HISTORY 
  45. -- 03/85        1.0  Bill Toscano               Initial Release 
  46. --                                                           -* 
  47. ------------------ Distribution and Copyright -----------------
  48. --                                                           -*
  49. -- This prologue must be included in all copies of this software.
  50. -- 
  51. -- This software is copyright by the author.
  52. -- 
  53. -- This software is released to the Ada community.
  54. -- This software is released to the Public Domain (note:
  55. --   software released to the Public Domain is not subject
  56. --   to copyright protection).
  57. -- Restrictions on use or distribution:  NONE
  58. --                                                           -*
  59. ----------------- Disclaimer ----------------------------------
  60. --                                                           -*
  61. -- This software and its documentation are provided "AS IS" and
  62. -- without any expressed or implied warranties whatsoever.
  63. --
  64. -- No warranties as to performance, merchantability, or fitness
  65. -- for a particular purpose exist.
  66. --
  67. -- Because of the diversity of conditions and hardware under
  68. -- which this software may be used, no warranty of fitness for
  69. -- a particular purpose is offered.  The user is advised to 
  70. -- test the software thoroughly before relying on it.  The user
  71. -- must assume the entire risk and liability of using this 
  72. -- software.
  73. --
  74. -- In no event shall any person or organization of people be
  75. -- held responsible for any direct, indirect, consequential
  76. -- or inconsequential damages or lost profits.
  77. --                                                          -*
  78. ----------------- END-PROLOGUE -------------------------------
  79. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  80. --GRMCONST.BDY
  81. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  82. --+ GRMCONST.BDY +--
  83.  
  84. Package body Grammar_Constants is
  85.  
  86.     function setGrammarSymbolCount return ParserInteger is
  87.     begin
  88.         return   315 ;
  89.     end setGrammarSymbolCount;
  90.     
  91.     function setActionCount return ParserInteger is
  92.     begin
  93.         return  1416 ;
  94.     end setActionCount;
  95.     
  96.     function setStateCountPlusOne return ParserInteger is
  97.     begin
  98.         return   943 ;
  99.     end setStateCountPlusOne;
  100.     
  101.     function setLeftHandSideCount return ParserInteger is
  102.     begin
  103.     return   471 ;
  104.     end setLeftHandSideCount;
  105.     
  106.     function setRightHandSideCount return ParserInteger is
  107.     begin
  108.         return   471 ;
  109.     end setRightHandSideCount;
  110.     
  111. end Grammar_Constants;
  112. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  113. --PTBLS.BDY
  114. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  115. --+ PTBLS.BDY +--
  116.  
  117. package body ParseTables is
  118. ----------------------------------------------------------------------
  119. -- The rest of the constants used to define the Parse Tables
  120. ----------------------------------------------------------------------
  121.  
  122.     DefaultValue : constant := 1 ; -- default for aggregates.
  123.     
  124.     ActionTableOneLength : constant GC.ParserInteger :=
  125.          8286 ;
  126.         --| Length (number of entries) in map ActionTableOne.
  127.     subtype ActionTableOneRange is GC.ParserInteger
  128.             range 1..ActionTableOneLength;
  129.     
  130.     ActionTableTwoLength : constant GC.ParserInteger :=
  131.          8286 ;
  132.         --| Length (number of entries) in map ActionTableTwo.
  133.     subtype ActionTableTwoRange is GC.ParserInteger
  134.             range 1..ActionTableTwoLength;
  135.     
  136.     DefaultMapLength : constant GC.ParserInteger :=
  137.           942 ;
  138.         --| Length (number of entries) in map Defaults.
  139.     subtype DefaultMapRange is GC.ParserInteger range 1..DefaultMapLength;
  140.     
  141.     FollowMapLength : constant GC.ParserInteger :=
  142.           219 ;
  143.         --| Length (number of entries) in the FollowMap.
  144.     
  145.     GrammarSymbolCountPlusOne : constant GC.ParserInteger :=
  146.           316 ;
  147.         --| Number of symbols plus one in the parse tables.
  148.         -- NYU Reference Name: NUM_INPUTS
  149.     
  150.     ActionTableSize : constant GC.ParserInteger :=
  151.          5501 ;
  152.         --| Maximum entry in Action Tables referenced by hash
  153.         --| function. Entries above TableSize are collision chains.
  154.         -- NYU Reference Name: TABLE_SIZE
  155.     
  156.     ------------------------------------------------------------------
  157.     -- Tables generated by Parse Tables Generator
  158.     ------------------------------------------------------------------
  159.  
  160.     subtype GrammarSymbolRepRangePlusZero is
  161.         GrammarSymbolRepRangePlusZeroCommon;
  162.  
  163.     GrammarSymbolTableIndex : constant
  164.         array (GrammarSymbolRange'first .. GrammarSymbolRange'last * 2)
  165.         of GC.ParserInteger :=
  166.          (    1,    0,    1,    5,    6,    8,    9,   14,   15,   20
  167. ,   21,   23,   24,   26,   27,   31,   32,   33,   34,   38
  168. ,   39,   42,   43,   46,   47,   54,   55,   61,   62,   66
  169. ,   67,   71,   72,   77,   78,   79,   80,   83,   84,   88
  170. ,   89,   91,   92,   96,   97,  105,  106,  109,  110,  112
  171. ,  113,  120,  121,  127,  128,  131,  132,  133,  134,  135
  172. ,  136,  137,  138,  144,  145,  148,  149,  151,  152,  154
  173. ,  155,  157,  158,  161,  162,  163,  164,  165,  166,  171
  174. ,  172,  174,  175,  181,  182,  187,  188,  194,  195,  203
  175. ,  204,  208,  209,  213,  214,  219,  220,  222,  223,  229
  176. ,  230,  235,  236,  242,  243,  248,  249,  256,  257,  263
  177. ,  264,  267,  268,  276,  277,  280,  281,  284,  285,  287
  178. ,  288,  291,  292,  296,  297,  300,  301,  303,  304,  313
  179. ,  314,  328,  329,  342,  343,  359,  360,  360,  361,  361
  180. ,  362,  362,  363,  363,  364,  364,  365,  365,  366,  366
  181. ,  367,  367,  368,  368,  369,  369,  370,  370,  371,  371
  182. ,  372,  372,  373,  373,  374,  374,  375,  377,  378,  379
  183. ,  380,  381,  382,  383,  384,  385,  386,  387,  388,  389
  184. ,  390,  391,  392,  393,  394,  395,  396,  397,  398,  412
  185. ,  413,  416,  417,  420,  421,  431,  432,  461,  462,  467
  186. ,  468,  485,  486,  502,  503,  520,  521,  536,  537,  555
  187. ,  556,  577,  578,  596,  597,  612,  613,  631,  632,  652
  188. ,  653,  673,  674,  693,  694,  708,  709,  726,  727,  740
  189. ,  741,  768,  769,  778,  779,  791,  792,  812,  813,  839
  190. ,  840,  863,  864,  878,  879,  904,  905,  933,  934,  960
  191. ,  961,  983,  984, 1003, 1004, 1024, 1025, 1046, 1047, 1068
  192. , 1069, 1091, 1092, 1100, 1101, 1110, 1111, 1132, 1133, 1148
  193. , 1149, 1173, 1174, 1195, 1196, 1212, 1213, 1245, 1246, 1281
  194. , 1282, 1300, 1301, 1328, 1329, 1346, 1347, 1371, 1372, 1401
  195. , 1402, 1425, 1426, 1452, 1453, 1468, 1469, 1472, 1473, 1486
  196. , 1487, 1503, 1504, 1508, 1509, 1522, 1523, 1535, 1536, 1558
  197. , 1559, 1579, 1580, 1591, 1592, 1607, 1608, 1614, 1615, 1623
  198. , 1624, 1629, 1630, 1638, 1639, 1662, 1663, 1678, 1679, 1682
  199. , 1683, 1706, 1707, 1728, 1729, 1749, 1750, 1759, 1760, 1781
  200. , 1782, 1792, 1793, 1801, 1802, 1816, 1817, 1828, 1829, 1837
  201. , 1838, 1854, 1855, 1872, 1873, 1881, 1882, 1889, 1890, 1909
  202. , 1910, 1931, 1932, 1940, 1941, 1974, 1975, 1995, 1996, 2022
  203. , 2023, 2052, 2053, 2070, 2071, 2099, 2100, 2134, 2135, 2172
  204. , 2173, 2180, 2181, 2203, 2204, 2225, 2226, 2248, 2249, 2277
  205. , 2278, 2305, 2306, 2345, 2346, 2352, 2353, 2409, 2410, 2445
  206. , 2446, 2449, 2450, 2456, 2457, 2490, 2491, 2496, 2497, 2526
  207. , 2527, 2550, 2551, 2559, 2560, 2579, 2580, 2598, 2599, 2620
  208. , 2621, 2641, 2642, 2661, 2662, 2684, 2685, 2697, 2698, 2709
  209. , 2710, 2718, 2719, 2729, 2730, 2751, 2752, 2767, 2768, 2785
  210. , 2786, 2793, 2794, 2807, 2808, 2827, 2828, 2841, 2842, 2857
  211. , 2858, 2871, 2872, 2886, 2887, 2901, 2902, 2916, 2917, 2930
  212. , 2931, 2944, 2945, 2956, 2957, 2970, 2971, 2984, 2985, 2999
  213. , 3000, 3015, 3016, 3031, 3032, 3036, 3037, 3074, 3075, 3122
  214. , 3123, 3152, 3153, 3161, 3162, 3173, 3174, 3199, 3200, 3227
  215. , 3228, 3245, 3246, 3257, 3258, 3271, 3272, 3286, 3287, 3319
  216. , 3320, 3355, 3356, 3374, 3375, 3398, 3399, 3421, 3422, 3447
  217. , 3448, 3457, 3458, 3461, 3462, 3483, 3484, 3499, 3500, 3520
  218. , 3521, 3542, 3543, 3564, 3565, 3580, 3581, 3598, 3599, 3617
  219. , 3618, 3640, 3641, 3659, 3660, 3690, 3691, 3707, 3708, 3734
  220. , 3735, 3748, 3749, 3770, 3771, 3786, 3787, 3804, 3805, 3828
  221. , 3829, 3854, 3855, 3872, 3873, 3889, 3890, 3910, 3911, 3934
  222. , 3935, 3941, 3942, 3959, 3960, 3972, 3973, 3988, 3989, 4002
  223. , 4003, 4027, 4028, 4034, 4035, 4059, 4060, 4077, 4078, 4088
  224. , 4089, 4104, 4105, 4123, 4124, 4140, 4141, 4161, 4162, 4180
  225. , 4181, 4211, 4212, 4240, 4241, 4263, 4264, 4281, 4282, 4300
  226. , 4301, 4322, 4323, 4374, 4375, 4398, 4399, 4422, 4423, 4435
  227. , 4436, 4468, 4469, 4482, 4483, 4510, 4511, 4528, 4529, 4544
  228. , 4545, 4560, 4561, 4573, 4574, 4586, 4587, 4608, 4609, 4623
  229.  ) ;
  230.         
  231.     GrammarSymbolTable : constant String :=
  232.          ('A','B','O','R','T','A','B','S','A','C'
  233. ,'C','E','P','T','A','C','C','E','S','S'
  234. ,'A','L','L','A','N','D','A','R','R','A'
  235. ,'Y','A','T','B','E','G','I','N','B','O'
  236. ,'D','Y','C','A','S','E','C','O','N','S'
  237. ,'T','A','N','T','D','E','C','L','A','R'
  238. ,'E','D','E','L','A','Y','D','E','L','T'
  239. ,'A','D','I','G','I','T','S','D','O','E'
  240. ,'L','S','E','E','L','S','I','F','E','N'
  241. ,'D','E','N','T','R','Y','E','X','C','E'
  242. ,'P','T','I','O','N','E','X','I','T','F'
  243. ,'O','R','F','U','N','C','T','I','O','N'
  244. ,'G','E','N','E','R','I','C','G','O','T'
  245. ,'O','I','F','I','N','I','S','L','I','M'
  246. ,'I','T','E','D','L','O','O','P','M','O'
  247. ,'D','N','E','W','N','O','T','N','U','L'
  248. ,'L','O','F','O','R','O','T','H','E','R'
  249. ,'S','O','U','T','P','A','C','K','A','G'
  250. ,'E','P','R','A','G','M','A','P','R','I'
  251. ,'V','A','T','E','P','R','O','C','E','D'
  252. ,'U','R','E','R','A','I','S','E','R','A'
  253. ,'N','G','E','R','E','C','O','R','D','R'
  254. ,'E','M','R','E','N','A','M','E','S','R'
  255. ,'E','T','U','R','N','R','E','V','E','R'
  256. ,'S','E','S','E','L','E','C','T','S','E'
  257. ,'P','A','R','A','T','E','S','U','B','T'
  258. ,'Y','P','E','T','A','S','K','T','E','R'
  259. ,'M','I','N','A','T','E','T','H','E','N'
  260. ,'T','Y','P','E','U','S','E','W','H','E'
  261. ,'N','W','H','I','L','E','W','I','T','H'
  262. ,'X','O','R','i','d','e','n','t','i','f'
  263. ,'i','e','r','n','u','m','e','r','i','c'
  264. ,'_','l','i','t','e','r','a','l','s','t'
  265. ,'r','i','n','g','_','l','i','t','e','r'
  266. ,'a','l','c','h','a','r','a','c','t','e'
  267. ,'r','_','l','i','t','e','r','a','l','&'
  268. ,''','(',')','*','+',',','-','.','/',':'
  269. ,';','<','=','>',''','|',''','=','>','.'
  270. ,'.','*','*',':','=','/','=','>','=','<'
  271. ,'=','<','<','>','>','<','>','c','o','m'
  272. ,'m','e','n','t','_','l','i','t','e','r'
  273. ,'a','l','$','E','O','F','$','A','C','C'
  274. ,'c','o','m','p','i','l','a','t','i','o'
  275. ,'n','g','e','n','e','r','a','l','_','c'
  276. ,'o','m','p','o','n','e','n','t','_','a'
  277. ,'s','s','o','c','i','a','t','i','o','n'
  278. ,'s','p','r','a','g','m','a','o','b','j'
  279. ,'e','c','t','_','d','e','c','l','a','r'
  280. ,'a','t','i','o','n','b','a','s','i','c'
  281. ,'_','d','e','c','l','a','r','a','t','i'
  282. ,'o','n','n','u','m','b','e','r','_','d'
  283. ,'e','c','l','a','r','a','t','i','o','n'
  284. ,'t','y','p','e','_','d','e','c','l','a'
  285. ,'r','a','t','i','o','n','s','u','b','t'
  286. ,'y','p','e','_','d','e','c','l','a','r'
  287. ,'a','t','i','o','n','s','u','b','p','r'
  288. ,'o','g','r','a','m','_','d','e','c','l'
  289. ,'a','r','a','t','i','o','n','p','a','c'
  290. ,'k','a','g','e','_','d','e','c','l','a'
  291. ,'r','a','t','i','o','n','t','a','s','k'
  292. ,'_','d','e','c','l','a','r','a','t','i'
  293. ,'o','n','g','e','n','e','r','i','c','_'
  294. ,'d','e','c','l','a','r','a','t','i','o'
  295. ,'n','e','x','c','e','p','t','i','o','n'
  296. ,'_','d','e','c','l','a','r','a','t','i'
  297. ,'o','n','g','e','n','e','r','i','c','_'
  298. ,'i','n','s','t','a','n','t','i','a','t'
  299. ,'i','o','n','r','e','n','a','m','i','n'
  300. ,'g','_','d','e','c','l','a','r','a','t'
  301. ,'i','o','n','i','d','e','n','t','i','f'
  302. ,'i','e','r','_','l','i','s','t','s','u'
  303. ,'b','t','y','p','e','_','i','n','d','i'
  304. ,'c','a','t','i','o','n','[',':','=','e'
  305. ,'x','p','r','e','s','s','i','o','n',']'
  306. ,'c','o','n','s','t','r','a','i','n','e'
  307. ,'d','_','a','r','r','a','y','_','d','e'
  308. ,'f','i','n','i','t','i','o','n','e','x'
  309. ,'p','r','e','s','s','i','o','n','{',','
  310. ,'i','d','e','n','t','i','f','i','e','r'
  311. ,'}','f','u','l','l','_','t','y','p','e'
  312. ,'_','d','e','c','l','a','r','a','t','i'
  313. ,'o','n','i','n','c','o','m','p','l','e'
  314. ,'t','e','_','t','y','p','e','_','d','e'
  315. ,'c','l','a','r','a','t','i','o','n','p'
  316. ,'r','i','v','a','t','e','_','t','y','p'
  317. ,'e','_','d','e','c','l','a','r','a','t'
  318. ,'i','o','n','t','y','p','e','_','d','e'
  319. ,'f','i','n','i','t','i','o','n','d','i'
  320. ,'s','c','r','i','m','i','n','a','n','t'
  321. ,'_','s','p','e','c','i','f','i','c','a'
  322. ,'t','i','o','n','{',';','d','i','s','c'
  323. ,'r','i','m','i','n','a','n','t','_','s'
  324. ,'p','e','c','i','f','i','c','a','t','i'
  325. ,'o','n','}','e','n','u','m','e','r','a'
  326. ,'t','i','o','n','_','t','y','p','e','_'
  327. ,'d','e','f','i','n','i','t','i','o','n'
  328. ,'i','n','t','e','g','e','r','_','t','y'
  329. ,'p','e','_','d','e','f','i','n','i','t'
  330. ,'i','o','n','r','e','a','l','_','t','y'
  331. ,'p','e','_','d','e','f','i','n','i','t'
  332. ,'i','o','n','a','r','r','a','y','_','t'
  333. ,'y','p','e','_','d','e','f','i','n','i'
  334. ,'t','i','o','n','r','e','c','o','r','d'
  335. ,'_','t','y','p','e','_','d','e','f','i'
  336. ,'n','i','t','i','o','n','a','c','c','e'
  337. ,'s','s','_','t','y','p','e','_','d','e'
  338. ,'f','i','n','i','t','i','o','n','d','e'
  339. ,'r','i','v','e','d','_','t','y','p','e'
  340. ,'_','d','e','f','i','n','i','t','i','o'
  341. ,'n','t','y','p','e','_','m','a','r','k'
  342. ,'c','o','n','s','t','r','a','i','n','t'
  343. ,'t','y','p','e','_','n','a','m','e','|'
  344. ,'s','u','b','t','y','p','e','_','n','a'
  345. ,'m','e','r','a','n','g','e','_','c','o'
  346. ,'n','s','t','r','a','i','n','t','f','l'
  347. ,'o','a','t','i','n','g','_','p','o','i'
  348. ,'n','t','_','c','o','n','s','t','r','a'
  349. ,'i','n','t','f','i','x','e','d','_','p'
  350. ,'o','i','n','t','_','c','o','n','s','t'
  351. ,'r','a','i','n','t','s','i','m','p','l'
  352. ,'e','_','e','x','p','r','e','s','s','i'
  353. ,'o','n','e','n','u','m','e','r','a','t'
  354. ,'i','o','n','_','l','i','t','e','r','a'
  355. ,'l','_','s','p','e','c','i','f','i','c'
  356. ,'a','t','i','o','n','{',',','e','n','u'
  357. ,'m','e','r','a','t','i','o','n','_','l'
  358. ,'i','t','e','r','a','l','_','s','p','e'
  359. ,'c','i','f','i','c','a','t','i','o','n'
  360. ,'}','e','n','u','m','e','r','a','t','i'
  361. ,'o','n','_','l','i','t','e','r','a','l'
  362. ,'f','l','o','a','t','i','n','g','_','a'
  363. ,'c','c','u','r','a','c','y','_','d','e'
  364. ,'f','i','n','i','t','i','o','n','[','r'
  365. ,'a','n','g','e','_','c','o','n','s','t'
  366. ,'r','a','i','n','t',']','f','i','x','e'
  367. ,'d','_','a','c','c','u','r','a','c','y'
  368. ,'_','d','e','f','i','n','i','t','i','o'
  369. ,'n','u','n','c','o','n','s','t','r','a'
  370. ,'i','n','e','d','_','a','r','r','a','y'
  371. ,'_','d','e','f','i','n','i','t','i','o'
  372. ,'n','i','n','d','e','x','_','s','u','b'
  373. ,'t','y','p','e','_','d','e','f','i','n'
  374. ,'i','t','i','o','n','{',',','i','n','d'
  375. ,'e','x','_','s','u','b','t','y','p','e'
  376. ,'_','d','e','f','i','n','i','t','i','o'
  377. ,'n','}','i','n','d','e','x','_','c','o'
  378. ,'n','s','t','r','a','i','n','t','n','a'
  379. ,'m','e','d','i','s','c','r','e','t','e'
  380. ,'_','r','a','n','g','e','{',',','d','i'
  381. ,'s','c','r','e','t','e','_','r','a','n'
  382. ,'g','e','}','r','a','n','g','e','c','o'
  383. ,'m','p','o','n','e','n','t','_','l','i'
  384. ,'s','t','{','p','r','a','g','m','a','_'
  385. ,'d','e','c','l','}','{','c','o','m','p'
  386. ,'o','n','e','n','t','_','d','e','c','l'
  387. ,'a','r','a','t','i','o','n','}','c','o'
  388. ,'m','p','o','n','e','n','t','_','d','e'
  389. ,'c','l','a','r','a','t','i','o','n','v'
  390. ,'a','r','i','a','n','t','_','p','a','r'
  391. ,'t','{','p','r','a','g','m','a','_','v'
  392. ,'a','r','i','a','n','t','}','v','a','r'
  393. ,'i','a','n','t','{','v','a','r','i','a'
  394. ,'n','t','}','c','h','o','i','c','e','{'
  395. ,'|','c','h','o','i','c','e','}','{','b'
  396. ,'a','s','i','c','_','d','e','c','l','a'
  397. ,'r','a','t','i','v','e','_','i','t','e'
  398. ,'m','}','d','e','c','l','a','r','a','t'
  399. ,'i','v','e','_','p','a','r','t','b','o'
  400. ,'d','y','{','l','a','t','e','r','_','d'
  401. ,'e','c','l','a','r','a','t','i','v','e'
  402. ,'_','i','t','e','m','}','b','a','s','i'
  403. ,'c','_','d','e','c','l','a','r','a','t'
  404. ,'i','v','e','_','i','t','e','m','r','e'
  405. ,'p','r','e','s','e','n','t','a','t','i'
  406. ,'o','n','_','c','l','a','u','s','e','u'
  407. ,'s','e','_','c','l','a','u','s','e','l'
  408. ,'a','t','e','r','_','d','e','c','l','a'
  409. ,'r','a','t','i','v','e','_','i','t','e'
  410. ,'m','p','r','o','p','e','r','_','b','o'
  411. ,'d','y','b','o','d','y','_','s','t','u'
  412. ,'b','s','u','b','p','r','o','g','r','a'
  413. ,'m','_','b','o','d','y','p','a','c','k'
  414. ,'a','g','e','_','b','o','d','y','t','a'
  415. ,'s','k','_','b','o','d','y','i','n','d'
  416. ,'e','x','e','d','_','c','o','m','p','o'
  417. ,'n','e','n','t','s','e','l','e','c','t'
  418. ,'e','d','_','c','o','m','p','o','n','e'
  419. ,'n','t','a','t','t','r','i','b','u','t'
  420. ,'e','s','e','l','e','c','t','o','r','a'
  421. ,'t','t','r','i','b','u','t','e','_','d'
  422. ,'e','s','i','g','n','a','t','o','r','c'
  423. ,'o','m','p','o','n','e','n','t','_','a'
  424. ,'s','s','o','c','i','a','t','i','o','n'
  425. ,'s','a','g','g','r','e','g','a','t','e'
  426. ,'e','x','p','r','e','s','s','i','o','n'
  427. ,',','e','x','p','r','e','s','s','i','o'
  428. ,'n','{',',','e','x','p','r','e','s','s'
  429. ,'i','o','n','}','[',',','o','t','h','e'
  430. ,'r','s','=','>','e','x','p','r','e','s'
  431. ,'s','i','o','n',']','c','h','o','i','c'
  432. ,'e','{','|','c','h','o','i','c','e','}'
  433. ,'=','>','e','x','p','r','e','s','s','i'
  434. ,'o','n','{',',','c','h','o','i','c','e'
  435. ,'{','|','c','h','o','i','c','e','}','='
  436. ,'>','e','x','p','r','e','s','s','i','o'
  437. ,'n','}','o','t','h','e','r','s','=','>'
  438. ,'e','x','p','r','e','s','s','i','o','n'
  439. ,'g','a','_','e','x','p','r','e','s','s'
  440. ,'i','o','n','{',',','g','a','_','e','x'
  441. ,'p','r','e','s','s','i','o','n','}','i'
  442. ,'d','e','n','t','i','f','i','e','r','{'
  443. ,'|','i','d','e','n','t','i','f','i','e'
  444. ,'r','}','=','>','e','x','p','r','e','s'
  445. ,'s','i','o','n','{',',','i','d','e','n'
  446. ,'t','i','f','i','e','r','{','|','i','d'
  447. ,'e','n','t','i','f','i','e','r','}','='
  448. ,'>','e','x','p','r','e','s','s','i','o'
  449. ,'n','}','r','e','l','a','t','i','o','n'
  450. ,'r','e','l','a','t','i','o','n','{','A'
  451. ,'N','D','_','_','r','e','l','a','t','i'
  452. ,'o','n','}','r','e','l','a','t','i','o'
  453. ,'n','{','O','R','_','_','r','e','l','a'
  454. ,'t','i','o','n','}','r','e','l','a','t'
  455. ,'i','o','n','{','X','O','R','_','_','r'
  456. ,'e','l','a','t','i','o','n','}','r','e'
  457. ,'l','a','t','i','o','n','{','A','N','D'
  458. ,'_','_','T','H','E','N','_','_','r','e'
  459. ,'l','a','t','i','o','n','}','r','e','l'
  460. ,'a','t','i','o','n','{','O','R','_','_'
  461. ,'E','L','S','E','_','_','r','e','l','a'
  462. ,'t','i','o','n','}','[','r','e','l','a'
  463. ,'t','i','o','n','a','l','_','o','p','e'
  464. ,'r','a','t','o','r','_','_','s','i','m'
  465. ,'p','l','e','_','e','x','p','r','e','s'
  466. ,'s','i','o','n',']','[','N','O','T',']'
  467. ,'I','N','[','u','n','a','r','y','_','a'
  468. ,'d','d','i','n','g','_','o','p','e','r'
  469. ,'a','t','o','r',']','t','e','r','m','{'
  470. ,'b','i','n','a','r','y','_','a','d','d'
  471. ,'i','n','g','_','o','p','e','r','a','t'
  472. ,'o','r','_','_','t','e','r','m','}','f'
  473. ,'a','c','t','o','r','{','m','u','l','t'
  474. ,'i','p','l','y','i','n','g','_','o','p'
  475. ,'e','r','a','t','o','r','_','_','f','a'
  476. ,'c','t','o','r','}','t','e','r','m','p'
  477. ,'r','i','m','a','r','y','[','e','x','p'
  478. ,'o','n','e','n','t','i','a','t','i','n'
  479. ,'g','_','o','p','e','r','a','t','o','r'
  480. ,'_','_','p','r','i','m','a','r','y',']'
  481. ,'f','a','c','t','o','r','h','i','g','h'
  482. ,'_','p','r','e','c','e','d','e','n','c'
  483. ,'e','_','u','n','a','r','y','_','o','p'
  484. ,'e','r','a','t','o','r','p','a','r','e'
  485. ,'n','t','h','e','s','i','z','e','d','_'
  486. ,'e','x','p','r','e','s','s','i','o','n'
  487. ,'a','l','l','o','c','a','t','o','r','q'
  488. ,'u','a','l','i','f','i','e','d','_','e'
  489. ,'x','p','r','e','s','s','i','o','n','r'
  490. ,'e','l','a','t','i','o','n','a','l','_'
  491. ,'o','p','e','r','a','t','o','r','b','i'
  492. ,'n','a','r','y','_','a','d','d','i','n'
  493. ,'g','_','o','p','e','r','a','t','o','r'
  494. ,'u','n','a','r','y','_','a','d','d','i'
  495. ,'n','g','_','o','p','e','r','a','t','o'
  496. ,'r','m','u','l','t','i','p','l','y','i'
  497. ,'n','g','_','o','p','e','r','a','t','o'
  498. ,'r','e','x','p','o','n','e','n','t','i'
  499. ,'a','t','i','n','g','_','o','p','e','r'
  500. ,'a','t','o','r','e','x','p','a','n','d'
  501. ,'e','d','_','n','a','m','e','{','p','r'
  502. ,'a','g','m','a','_','s','t','m','}','s'
  503. ,'t','a','t','e','m','e','n','t','{','s'
  504. ,'t','a','t','e','m','e','n','t','}','s'
  505. ,'e','q','u','e','n','c','e','_','o','f'
  506. ,'_','s','t','a','t','e','m','e','n','t'
  507. ,'s','s','i','m','p','l','e','_','s','t'
  508. ,'a','t','e','m','e','n','t','c','o','m'
  509. ,'p','o','u','n','d','_','s','t','a','t'
  510. ,'e','m','e','n','t','{','l','a','b','e'
  511. ,'l','}','+','n','u','l','l','_','s','t'
  512. ,'a','t','e','m','e','n','t','a','s','s'
  513. ,'i','g','n','m','e','n','t','_','s','t'
  514. ,'a','t','e','m','e','n','t','e','x','i'
  515. ,'t','_','s','t','a','t','e','m','e','n'
  516. ,'t','r','e','t','u','r','n','_','s','t'
  517. ,'a','t','e','m','e','n','t','g','o','t'
  518. ,'o','_','s','t','a','t','e','m','e','n'
  519. ,'t','d','e','l','a','y','_','s','t','a'
  520. ,'t','e','m','e','n','t','a','b','o','r'
  521. ,'t','_','s','t','a','t','e','m','e','n'
  522. ,'t','r','a','i','s','e','_','s','t','a'
  523. ,'t','e','m','e','n','t','c','o','d','e'
  524. ,'_','s','t','a','t','e','m','e','n','t'
  525. ,'c','a','l','l','_','s','t','a','t','e'
  526. ,'m','e','n','t','i','f','_','s','t','a'
  527. ,'t','e','m','e','n','t','c','a','s','e'
  528. ,'_','s','t','a','t','e','m','e','n','t'
  529. ,'l','o','o','p','_','s','t','a','t','e'
  530. ,'m','e','n','t','b','l','o','c','k','_'
  531. ,'s','t','a','t','e','m','e','n','t','a'
  532. ,'c','c','e','p','t','_','s','t','a','t'
  533. ,'e','m','e','n','t','s','e','l','e','c'
  534. ,'t','_','s','t','a','t','e','m','e','n'
  535. ,'t','l','a','b','e','l','c','o','n','d'
  536. ,'i','t','i','o','n','_','T','H','E','N'
  537. ,'_','_','s','e','q','u','e','n','c','e'
  538. ,'_','o','f','_','s','t','a','t','e','m'
  539. ,'e','n','t','s','{','E','L','S','I','F'
  540. ,'_','_','c','o','n','d','i','t','i','o'
  541. ,'n','_','_','T','H','E','N','_','_','s'
  542. ,'e','q','u','e','n','c','e','_','o','f'
  543. ,'_','s','t','a','t','e','m','e','n','t'
  544. ,'s','}','[','E','L','S','E','_','_','s'
  545. ,'e','q','u','e','n','c','e','_','o','f'
  546. ,'_','s','t','a','t','e','m','e','n','t'
  547. ,'s',']','c','o','n','d','i','t','i','o'
  548. ,'n','{','p','r','a','g','m','a','_','a'
  549. ,'l','t','}','c','a','s','e','_','s','t'
  550. ,'a','t','e','m','e','n','t','_','a','l'
  551. ,'t','e','r','n','a','t','i','v','e','{'
  552. ,'c','a','s','e','_','s','t','a','t','e'
  553. ,'m','e','n','t','_','a','l','t','e','r'
  554. ,'n','a','t','i','v','e','}','[','l','o'
  555. ,'o','p','_','i','d','e','n','t','i','f'
  556. ,'i','e','r',':',']','[','i','d','e','n'
  557. ,'t','i','f','i','e','r',']','i','t','e'
  558. ,'r','a','t','i','o','n','_','r','u','l'
  559. ,'e','b','e','g','i','n','_','e','n','d'
  560. ,'_','b','l','o','c','k','d','e','c','l'
  561. ,'a','r','a','t','i','v','e','_','p','a'
  562. ,'r','t','_','_','b','e','g','i','n','_'
  563. ,'e','n','d','_','b','l','o','c','k','{'
  564. ,'p','r','a','g','m','a','_','a','l','t'
  565. ,'}','_','_','e','x','c','e','p','t','i'
  566. ,'o','n','_','h','a','n','d','l','e','r'
  567. ,'_','l','i','s','t','[','b','l','o','c'
  568. ,'k','_','i','d','e','n','t','i','f','i'
  569. ,'e','r',':',']','s','u','b','p','r','o'
  570. ,'g','r','a','m','_','s','p','e','c','i'
  571. ,'f','i','c','a','t','i','o','n','p','a'
  572. ,'r','a','m','e','t','e','r','_','s','p'
  573. ,'e','c','i','f','i','c','a','t','i','o'
  574. ,'n','{',';','p','a','r','a','m','e','t'
  575. ,'e','r','_','s','p','e','c','i','f','i'
  576. ,'c','a','t','i','o','n','}','d','e','s'
  577. ,'i','g','n','a','t','o','r','m','o','d'
  578. ,'e','g','e','n','e','r','i','c','_','p'
  579. ,'a','r','a','m','e','t','e','r','_','m'
  580. ,'o','d','e','[','e','n','d','_','d','e'
  581. ,'s','i','g','n','a','t','o','r',']','p'
  582. ,'a','c','k','a','g','e','_','s','p','e'
  583. ,'c','i','f','i','c','a','t','i','o','n'
  584. ,'p','a','c','k','a','g','e','_','s','p'
  585. ,'e','c','_','i','n','d','i','c','a','t'
  586. ,'o','r','p','a','c','k','a','g','e','_'
  587. ,'b','o','d','y','_','i','n','d','i','c'
  588. ,'a','t','o','r','{',',','e','x','p','a'
  589. ,'n','d','e','d','_','n','a','m','e','}'
  590. ,'t','a','s','k','_','s','p','e','c','i'
  591. ,'f','i','c','a','t','i','o','n','{','e'
  592. ,'n','t','r','y','_','d','e','c','l','a'
  593. ,'r','a','t','i','o','n','}','{','r','e'
  594. ,'p','r','e','s','e','n','t','a','t','i'
  595. ,'o','n','_','c','l','a','u','s','e','}'
  596. ,'t','a','s','k','_','b','o','d','y','_'
  597. ,'i','n','d','i','c','a','t','o','r','['
  598. ,'(','d','i','s','c','r','e','t','e','_'
  599. ,'r','a','n','g','e',')',']','[','f','o'
  600. ,'r','m','a','l','_','p','a','r','t',']'
  601. ,'e','n','t','r','y','_','d','e','c','l'
  602. ,'a','r','a','t','i','o','n','[','(','e'
  603. ,'x','p','r','e','s','s','i','o','n',')'
  604. ,']','[','f','o','r','m','a','l','_','p'
  605. ,'a','r','t',']','s','e','l','e','c','t'
  606. ,'i','v','e','_','w','a','i','t','c','o'
  607. ,'n','d','i','t','i','o','n','a','l','_'
  608. ,'e','n','t','r','y','_','c','a','l','l'
  609. ,'t','i','m','e','d','_','e','n','t','r'
  610. ,'y','_','c','a','l','l','s','e','l','e'
  611. ,'c','t','_','a','l','t','e','r','n','a'
  612. ,'t','i','v','e','{','O','R','_','_','s'
  613. ,'e','l','e','c','t','_','a','l','t','e'
  614. ,'r','n','a','t','i','v','e','}','s','e'
  615. ,'l','e','c','t','i','v','e','_','w','a'
  616. ,'i','t','_','a','l','t','e','r','n','a'
  617. ,'t','i','v','e','a','c','c','e','p','t'
  618. ,'_','a','l','t','e','r','n','a','t','i'
  619. ,'v','e','d','e','l','a','y','_','a','l'
  620. ,'t','e','r','n','a','t','i','v','e','t'
  621. ,'e','r','m','i','n','a','t','e','_','a'
  622. ,'l','t','e','r','n','a','t','i','v','e'
  623. ,'[','s','e','q','u','e','n','c','e','_'
  624. ,'o','f','_','s','t','a','t','e','m','e'
  625. ,'n','t','s',']','{',',','n','a','m','e'
  626. ,'}','{','c','o','m','p','i','l','a','t'
  627. ,'i','o','n','_','u','n','i','t','}','p'
  628. ,'r','a','g','m','a','_','h','e','a','d'
  629. ,'e','r','c','o','m','p','i','l','a','t'
  630. ,'i','o','n','_','u','n','i','t','c','o'
  631. ,'n','t','e','x','t','_','c','l','a','u'
  632. ,'s','e','l','i','b','r','a','r','y','_'
  633. ,'o','r','_','s','e','c','o','n','d','a'
  634. ,'r','y','_','u','n','i','t','s','u','b'
  635. ,'u','n','i','t','{','w','i','t','h','_'
  636. ,'c','l','a','u','s','e','{','u','s','e'
  637. ,'_','c','l','a','u','s','e','}','}','{'
  638. ,',','u','s','e','d','_','i','d','e','n'
  639. ,'t','i','f','i','e','r','}','w','i','t'
  640. ,'h','_','c','l','a','u','s','e','e','x'
  641. ,'c','e','p','t','i','o','n','_','c','h'
  642. ,'o','i','c','e','{','|','e','x','c','e'
  643. ,'p','t','i','o','n','_','c','h','o','i'
  644. ,'c','e','}','e','x','c','e','p','t','i'
  645. ,'o','n','_','h','a','n','d','l','e','r'
  646. ,'g','e','n','e','r','i','c','_','s','p'
  647. ,'e','c','i','f','i','c','a','t','i','o'
  648. ,'n','g','e','n','e','r','i','c','_','f'
  649. ,'o','r','m','a','l','_','p','a','r','t'
  650. ,'{','g','e','n','e','r','i','c','_','p'
  651. ,'a','r','a','m','e','t','e','r','_','d'
  652. ,'e','c','l','a','r','a','t','i','o','n'
  653. ,'}','g','e','n','e','r','i','c','_','p'
  654. ,'a','r','a','m','e','t','e','r','_','d'
  655. ,'e','c','l','a','r','a','t','i','o','n'
  656. ,'g','e','n','e','r','i','c','_','t','y'
  657. ,'p','e','_','d','e','f','i','n','i','t'
  658. ,'i','o','n','[','I','S','_','_','n','a'
  659. ,'m','e','_','_','o','r','_','_','<','>'
  660. ,']','g','e','n','e','r','i','c','_','a'
  661. ,'s','s','o','c','i','a','t','i','o','n'
  662. ,'{',',','g','e','n','e','r','i','c','_'
  663. ,'a','s','s','o','c','i','a','t','i','o'
  664. ,'n','}','[','g','e','n','e','r','i','c'
  665. ,'_','f','o','r','m','a','l','_','p','a'
  666. ,'r','a','m','e','t','e','r','=','>',']'
  667. ,'g','e','n','e','r','i','c','_','a','c'
  668. ,'t','u','a','l','_','p','a','r','a','m'
  669. ,'e','t','e','r','g','e','n','e','r','i'
  670. ,'c','_','f','o','r','m','a','l','_','p'
  671. ,'a','r','a','m','e','t','e','r','g','e'
  672. ,'n','e','r','i','c','_','a','c','t','u'
  673. ,'a','l','_','p','a','r','a','m','e','t'
  674. ,'e','r','l','e','n','g','t','h','_','c'
  675. ,'l','a','u','s','e','e','n','u','m','e'
  676. ,'r','a','t','i','o','n','_','r','e','p'
  677. ,'r','e','s','e','n','t','a','t','i','o'
  678. ,'n','_','c','l','a','u','s','e','a','d'
  679. ,'d','r','e','s','s','_','c','l','a','u'
  680. ,'s','e','r','e','c','o','r','d','_','r'
  681. ,'e','p','r','e','s','e','n','t','a','t'
  682. ,'i','o','n','_','c','l','a','u','s','e'
  683. ,'{','c','o','m','p','o','n','e','n','t'
  684. ,'_','c','l','a','u','s','e','}','a','l'
  685. ,'i','g','n','m','e','n','t','_','c','l'
  686. ,'a','u','s','e','c','o','m','p','o','n'
  687. ,'e','n','t','_','c','l','a','u','s','e'
  688. ,'g','a','_','e','x','p','r','e','s','s'
  689. ,'i','o','n','{','|','i','d','e','n','t'
  690. ,'i','f','i','e','r','}','e','x','c','e'
  691. ,'p','t','i','o','n','_','h','a','n','d'
  692. ,'l','e','r','_','l','i','s','t','u','s'
  693. ,'e','_','c','l','a','u','s','e','_','l'
  694. ,'i','s','t')  ;
  695.         --| Table of symbols used in the grammar.
  696.         -- NYU Reference Name: NO_SYM
  697.     
  698.     LeftHandSide :
  699.          constant array (LeftHandSideRange)
  700.          of GrammarSymbolRange :=
  701.           (  100,  100,  102,  102,  102,  102,  102,  102,  102,  102
  702. ,  102,  102,  102,  101,  101,  101,  101,  103,  113,  104
  703. ,  104,  104,  119,  119,  122,  122,  122,  122,  122,  122
  704. ,  122,  105,  114,  114,  132,  133,  133,  133,  133,  131
  705. ,  135,  135,  125,  139,  141,  141,  126,  127,  127,  136
  706. ,  142,  137,  144,  128,  128,  145,  116,  146,  148,  150
  707. ,  150,  152,  152,  129,  153,  153,  153,  156,  123,  157
  708. ,  159,  159,  161,  161,  161,  130,  120,  120,  164,  164
  709. ,  167,  167,  167,  170,  170,  170,  170,  170,  170,  170
  710. ,  165,  165,  171,  171,  171,  149,  149,  149,  149,  149
  711. ,  149,  176,  177,  177,  179,  179,  179,  178,  180,  180
  712. ,  180,  180,  182,  181,  181,  181,  181,  181,  181,   99
  713. ,   99,   99,  117,  117,  117,  117,  117,  117,  191,  191
  714. ,  138,  201,  204,  204,  206,  202,  202,  202,  202,  202
  715. ,  202,  202,  209,  209,  209,  209,  209,  209,  210,  210
  716. ,  210,  211,  211,  205,  205,  212,  212,  212,  212,  213
  717. ,  208,  208,  207,  207,  207,  207,  218,  216,  216,  216
  718. ,  216,  219,  219,  219,  219,  219,  219,  219,  219,  219
  719. ,  219,  220,  220,  220,  220,  220,  220,  238,  222,  223
  720. ,  232,  242,  233,  244,  244,  234,  234,  248,  248,  248
  721. ,  250,  249,  249,  235,  235,  224,  224,  224,  224,  225
  722. ,  225,  226,  106,  253,  253,  253,  253,  256,  256,  254
  723. ,  257,  257,  258,  258,  258,  173,  231,  107,  260,  260
  724. ,  261,  174,  174,  262,  121,  121,  121,  121,  169,  112
  725. ,  112,  112,  112,  108,  264,  264,  264,  264,  175,  267
  726. ,  269,  236,  236,  227,  237,  237,  237,  271,  274,  274
  727. ,  276,  276,  276,  277,  278,  279,  272,  273,  228,   98
  728. ,  283,  284,  284,  284,  286,  286,  286,  286,  286,  286
  729. ,  286,  285,  290,  172,  172,  172,  287,  110,  293,  291
  730. ,  291,  229,  229,  109,  294,  294,  295,  297,  297,  297
  731. ,  297,  298,  298,  298,  298,  298,  298,  298,  298,  111
  732. ,  111,  111,  111,  111,  111,  300,  303,  303,  304,  168
  733. ,  168,  168,  168,  305,  306,  308,  308,  311,  310,  307
  734. ,  230,  154,  154,  158,  158,  215,  215,  243,  243,  115
  735. ,  115,  118,  118,  134,  214,  214,  140,  140,  143,  143
  736. ,  147,  147,  151,  151,  155,  155,  124,  124,  160,  160
  737. ,  162,  162,  163,  163,  166,  166,  183,  183,  185,  186
  738. ,  186,  184,  184,  187,  312,  312,  312,  188,  188,  189
  739. ,  190,  190,  313,  313,  192,  192,  193,  193,  194,  194
  740. ,  195,  195,  196,  196,  197,  197,  198,  198,  199,  199
  741. ,  199,  200,  200,  203,  203,  217,  217,  221,  221,  239
  742. ,  240,  240,  241,  241,  245,  245,  246,  246,  247,  247
  743. ,  252,  252,  251,  314,  314,  255,  255,  259,  259,  259
  744. ,  263,  263,  265,  265,  266,  266,  268,  268,  268,  268
  745. ,  270,  270,  270,  270,  275,  275,  280,  280,  281,  281
  746. ,  282,  282,  288,  288,  315,  315,  289,  289,  292,  292
  747. ,  296,  296,  299,  299,  299,  301,  301,  302,  302,  309
  748. ,  309)  ;
  749.         --| Map of the grammar rule number (constant array index) to
  750.         --| numeric value of left hand side symbol.
  751.         -- NYU Reference Name: LHS
  752.  
  753.     RightHandSide :
  754.          constant array (RightHandSideRange)
  755.          of GC.ParserInteger :=
  756.           (    6,    3,    1,    1,    1,    1,    1,    1,    1,    1
  757. ,    1,    1,    1,    5,    6,    5,    6,    6,    2,    1
  758. ,    1,    1,    5,    9,    1,    1,    1,    1,    1,    1
  759. ,    1,    5,    1,    2,    1,    1,    1,    1,    3,    2
  760. ,    2,    4,    4,    1,    1,    1,    1,    1,    1,    2
  761. ,    2,    2,    2,    1,    1,    7,    4,    3,    4,    2
  762. ,    1,    1,    3,    4,    4,    4,    3,    5,    4,    9
  763. ,    5,    4,    1,    3,    2,    2,    3,    7,    1,    3
  764. ,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1
  765. ,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1
  766. ,    1,    4,    3,    3,    1,    1,    1,    3,    1,    1
  767. ,    1,    1,    3,    2,    5,    5,    3,    3,    1,    1
  768. ,    4,    2,    1,    1,    1,    1,    1,    1,    2,    3
  769. ,    1,    1,    2,    2,    3,    1,    1,    1,    1,    1
  770. ,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1
  771. ,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1
  772. ,    3,    3,    2,    5,    4,    4,    3,    1,    1,    2
  773. ,    2,    1,    1,    1,    1,    1,    1,    1,    1,    1
  774. ,    1,    1,    1,    1,    1,    1,    1,    3,    2,    4
  775. ,    7,    1,    9,    5,    4,    7,    8,    2,    4,    5
  776. ,    2,    3,    5,    5,    4,    2,    4,    3,    5,    2
  777. ,    3,    3,    2,    2,    6,    4,    8,    1,    1,    4
  778. ,    1,    2,    1,    2,    3,    5,    2,    2,    4,    6
  779. ,    3,    5,    4,    4,    6,   10,    5,    9,    4,    6
  780. ,    6,    5,    4,    2,    2,    3,    7,    8,    4,    4
  781. ,    4,    4,    8,    3,    1,    1,    1,    7,    5,    2
  782. ,    1,    1,    1,    2,    2,    3,    9,   10,    4,    1
  783. ,    2,    5,    2,    2,    1,    1,    1,    1,    1,    1
  784. ,    1,    1,    4,    4,    6,    6,    5,    4,    5,    1
  785. ,    1,    2,    3,    2,    2,    2,    2,    5,    5,    9
  786. ,    4,    3,    2,    2,    2,    2,    1,    1,    1,    6
  787. ,   10,    6,   10,    5,    9,    1,    1,    1,    1,    1
  788. ,    1,    1,    1,    5,    5,    8,    9,    5,    4,    6
  789. ,    4,    0,    2,    0,    2,    0,    2,    0,    2,    0
  790. ,    2,    0,    3,    1,    1,    3,    0,    3,    0,    1
  791. ,    0,    3,    0,    3,    0,    3,    0,    3,    0,    2
  792. ,    0,    3,    1,    3,    1,    3,    3,    3,    4,    0
  793. ,    3,    0,    2,    3,    1,    3,    2,    1,    3,    4
  794. ,    0,    3,    0,    3,    3,    3,    3,    3,    3,    3
  795. ,    4,    4,    4,    4,    0,    2,    1,    2,    1,    2
  796. ,    3,    1,    3,    0,    2,    1,    3,    1,    2,    3
  797. ,    0,    5,    0,    2,    0,    2,    0,    2,    0,    1
  798. ,    0,    2,    2,    1,    2,    0,    3,    0,    1,    1
  799. ,    0,    3,    1,    3,    0,    3,    0,    4,    3,    7
  800. ,    0,    4,    3,    7,    0,    3,    1,    1,    0,    3
  801. ,    1,    2,    0,    3,    1,    3,    0,    3,    0,    3
  802. ,    0,    2,    0,    2,    2,    0,    3,    1,    3,    1
  803. ,    3)  ;
  804.         --| Map of the grammar rule number (constant array index) to
  805.         --| size of right hand sides (number of symbols).
  806.         -- NYU Reference Name: RHS
  807.  
  808.     ActionTableOne :
  809.          constant array (ActionTableOneRange)
  810.          of GC.ParserInteger :=
  811.           (    0,  401,  644,    0,    0,    0,    0,    0,    0,    0
  812. ,    0,  468,    0,    0,  469,    0,    0,    0,    0,  159
  813. ,    0,    0,  515,  516,    0,    0,  102,   39,   40,   41
  814. ,    0,    0,   42,    0,    0,   43,    0,   44,  517,    0
  815. ,    0, 6917,    0, 6921,  621,  622,    0,    0,   34,    0
  816. ,  519,    0,  217,  124, 6923, 6925,  122,    0,    0,  403
  817. ,  404,  207,  208,  209,  210,  211,  942, 6927,    0,    0
  818. ,    0,    0,    0,    0,    0,    0,    0,  521,    0,    0
  819. ,   35,   36,   37,    0,    0,    0, 6929, 6931,   37, 6933
  820. , 6935,  101,    0,    0,    0,  376, 6937,    0,    0,  262
  821. ,    0,    0,  127,  217,    0,  580,    0,    0,    0,    0
  822. , 6939, 6942, 6944,   41,    0,    0, 6946,   39, 6948, 6950
  823. ,   37,   44, 6954, 6956,    0,   43,    0,   44, 6958,    0
  824. ,    0,  523,  524,  525,  526, 6960,  528, 6962,   50,   51
  825. ,    0,  530,  531, 6966,   35,   36, 6970,    0, 6972,   39
  826. , 6974, 6977, 6981,   37, 6984,    0,    0, 6986,    0,   44
  827. ,   61,   62,   63,   64,    0,   65,   66,   67, 6988,   69
  828. ,    0,  409,   70,    0,  102,   39, 6991,   41,    0,    0
  829. ,   42,  102, 6993, 6996, 7000, 7002,    0,   42,    0,  104
  830. ,   97,    0,   98,  102,  151,   40,   41,  242,    0,    0
  831. , 7004,    0,    0,    0,  468,    0,    0,  469,    0,    0
  832. ,  169,    0,  106,    0,    0, 7006, 7008,   37,    0,    0
  833. ,    0, 7010, 7013,   51,  677,    0,  654, 7015, 7018,   51
  834. ,    0,  472, 7020,   52, 7023,   41,  109,    0,  110,    0
  835. ,    0,  166,   55, 7027, 7029, 7032, 7036, 7040,   41,   65
  836. , 7044, 7046, 7051, 7053, 7055, 7057, 7059,   67, 7063, 7065
  837. , 7067,   51,   70,    0,    0, 7069,    0,  421,    0,    0
  838. ,  475,    0,   99,    0, 7071,   56,   57, 7073,   59, 7075
  839. ,    0,    0,   61,   62, 7077, 7079, 7083, 7086,   66,   67
  840. , 7089, 7091, 7093, 7095, 7097,   44,    0, 7099,   52,    0
  841. ,   55,   56,   57,   58, 7101, 7103,   51,  112,   61, 7106
  842. ,   63,   64,    0, 7108,   66, 7110, 7113, 7116, 7118,    0
  843. , 7120,   66,   67,   68,   69,    0,    0,  477,    0, 7123
  844. ,    0,    0,    0,    0,    0,    0,  329,    0,  576,    0
  845. ,    0,    0,  805,   49, 7125, 7127,    0,    0,    0,  827
  846. ,    0,    0,    0,    0,    0,  300,   49, 7129, 7131, 7133
  847. , 7135,    0,   52,    0,   34,    0,  118,  119, 7137,   85
  848. ,  167,   55,   56,   57,   58,   59,   60,    0,    0,   61
  849. ,   62,   63,   64,  788,   65, 7139, 7141, 7143,   69,    0
  850. ,    0,   70,    0,    0,  680, 7146, 7149, 7152, 7155,    0
  851. ,    0,   52,    0, 7157,    0,    0,    0,    0,    0,    0
  852. ,   55,   56,   57,   58, 7160, 7162,    0,    0,   61,   62
  853. ,   63,   64,    0,   65,   66,   67, 7164, 7166,   40,   41
  854. ,   70,    0,   42,  899,  629, 7168,    0,   44,    0,    0
  855. ,    0,    0,    0,  683,  684, 7170,  686,  624,    0,    0
  856. ,    0,    0,    0,    0,  699,    0,  168,    0,    0,  577
  857. ,    0,    0,  493,    0,   16,  849,    0,    0,    0,    0
  858. ,    0,    0,    0,    0,  121,  122,    0,    0,    0,    0
  859. ,    0,    0,    0,    0,    0,    0,  123,    0,    0,    0
  860. ,    0,    0,    0,    0,    0,  357,    0,  838,    0,  243
  861. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  862. ,  151,    0,    0, 7173,    0,    0,    0,    0,    0,    0
  863. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  864. ,    0,    0,    0,    0,    0,  358,    0,   49, 7175,   51
  865. ,  655,    0,  776,   52,    0,    0,    0,    0,    0,    0
  866. ,  744,    0,    0,    0,    0,    0,  761,    0,    0,  762
  867. ,   61,   62,   63,   64,    0,   65,   66, 7177, 7179,   69
  868. ,   35,   36, 7181,    0,    0,    0,  612,    0,    0,  454
  869. ,    0,    0,    0,    0,    0,    0,    0,  217,  316,    0
  870. ,    0,  912,    0,   96,    0,    0,    0,    0,    4,    5
  871. , 7183, 7185, 7187, 7189,    8,    0,   42,    0,    0,   43
  872. ,    0,   44,    0,    0,    0,    0,    0,  807,    0,    0
  873. ,    0, 7191,  595,    0,    0,    0,    0,    0,    0,    0
  874. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  875. ,    0,    0,    0,    0,    0,    0,    0,  700,    0,    0
  876. ,    0,    0, 7193,    0,    0,    0,    0,    0,    0,    0
  877. ,  920,    0,    0,    0,    0,  301,  808,    0,  701,  605
  878. ,    0,  302, 7195,  262,    0,  814,    0,    0,  723,    0
  879. ,   34,  631, 7197,  126, 7199,    0,   73,    0,    0,  127
  880. ,    0,  702,    0,    0,    0,    0,    0,    9,    0,    0
  881. ,    0,  378,    0,    0,    0,    0,    0,    0,    0,    0
  882. ,    0, 7201, 7203, 7205,   37,    0,  777,   52,    0,  921
  883. ,    0,    0,    0,    0,    0,    0,   55,   56,   57,   58
  884. ,   59,   60,    0,    0,   61,   62,   63,   64,    0,   65
  885. ,   66,   67, 7207, 7210,   40,   41,   70,    0,   42,    0
  886. ,    0, 7212,    0,   44,    0,    0,    0,    0,  687,    0
  887. ,    0,  578,    0,  625,    0,    0,    0,    0,    0,  407
  888. ,    0,    0,    0,  335,  913,    0,    0,    0,    0,    0
  889. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  890. ,    0,    0,    0, 7214,    0,    0,    0,    0,    0,    0
  891. ,    0,    0,    0,    0,    0,    0,    0,    0,    0, 1365
  892. ,    0,  359,    0, 1365,    0, 7216,    0,    0,    0,  778
  893. ,    0,    0,    0,    0, 1361,    0,  151,    0,    0,  488
  894. ,    0,    0, 1361,    0,    0,    0,    0,    0,    0,    0
  895. , 7218,    0,  409,    0,    0,    0,    0,   35, 7221,   37
  896. ,  410,    0, 1364, 7223,   50,   51, 7226,    0,    0,   52
  897. ,    0, 7228,  412, 1360,    0,    0, 7230, 7232,    0,    0
  898. ,    0, 1360,  761,    0,    0, 7234,   61, 7237, 7239, 7242
  899. ,   41, 7244,   66, 7246, 7248,   69,   43,    0, 7251,  417
  900. ,    0,  418,    0,  664,    0,    0,    0,    0,    0,   35
  901. , 7253,   37,    0,  419,    0,   40,   41,    0,    0,    0
  902. ,    0,  839,   34,    0,    0,    0,  132,    0,    0,    0
  903. ,    0,    0,    0,    0,    0,    0,    0,    0,    0, 7255
  904. , 7257,   40, 7259,    0,    0,   42,    0,  764,  421,    0
  905. ,    0,  133,    0,    0,   35,   36,   37,    0,    0,    0
  906. ,  262,    0,    0,    0,    0,    0,  922,    0,    0,    0
  907. ,    0,  151,    0,    0,    0,    0,    0,    0,    0,    0
  908. ,    0,    0,    0,    0,  102,   39,   40,   41,    0,    0
  909. ,   42,    0,    0,   43,    0,   44,    0, 7261, 7263, 7265
  910. ,   51,    0,  172,   13, 7267,    0,    0,    0,    0,  665
  911. ,  220,    0,    0,   55,   56,   57,   58,   59,   60, 7269
  912. ,  246, 7271, 7273, 7275, 7278,   50, 7280, 7282,   67,   68
  913. ,   69,    0,  175, 7284,    0,    0,  177,  178,    0,  536
  914. ,  308,    0,  159,  316,  537,    0, 7286,    0,    0,    0
  915. , 7288,   50, 7291,    0,  943, 1039,   52,  262,    0,    0
  916. ,    0,    0,    0, 1039,  423, 1039,    0,  424, 7293,  426
  917. , 7296,  428,  429,  430, 7298, 7301, 7304,  434, 7306, 7309
  918. , 7313, 7317, 7320, 7323, 7325, 7327, 7330, 7334, 7336, 7338
  919. , 7342, 1039, 1039, 1039, 7344,   49, 7346, 7348, 7351, 1039
  920. , 7353, 7355, 1039, 1039,    0, 1039, 1039, 1039,    0,    0
  921. ,  349,    0,    0,    0,    0,   34,    0,    0,   61, 7357
  922. , 7359, 7361,  613,   65, 7363, 7366, 7368,   69,    0,    0
  923. ,   70,    0,   96,    0,    0,    0,    0,    0,    0,    0
  924. ,  283,    0,  169,    0,  195,  196,  197,   35,   36,   37
  925. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  926. ,  815,    0,    0,    0,    0,    0,    0,    0,    0,    0
  927. ,    0,    0,    0,    0,    0,    0,    0,  747,   39,   40
  928. , 7370,  361,  851, 7372,    0, 7374,   43,  450,   44,    0
  929. ,    0,    0,    0,    0,    0,    0,    0,    0,  761,  699
  930. ,    0,  762,    0,    0,    0,    0,    0,  235,  666, 7376
  931. ,  134,    0,   35,   36,   37,    0,    0,  101,  688,  409
  932. ,    0,    0,  726,    0,    0,  278,    0,    0,    0,  748
  933. , 7378,    0,    0,    0,    0,    0,    0,   25,   26,    0
  934. ,    0,  199,  102,   39,   40,   41,    0,    0,   42,    0
  935. ,  262,   43,    0,   44,    0,    0,    0,    0,  902,    0
  936. ,    0,  151,    0,  765,    0,    0,    0,    0,    0,    0
  937. ,    0,   30, 7380,  306,    0,    0,  511,    0,   98,    0
  938. ,    0,  657,  200,  201,  202, 7382,    0,    0,   49,   50
  939. ,   51,    0,    0,  462, 7384,    0,    0,    0,    0,  225
  940. , 7386, 1396,  463, 7388,   56, 7390,   58,   59,   60,    0
  941. ,    0,   61,   62, 7392,   64,  104, 7395, 7398,   67, 7400
  942. ,   69,  710,   34,   70,  380,    0,  105,    0, 1396, 7403
  943. ,    0,    0,    0,    0,    0,    0,    0, 1396, 7405,    0
  944. ,    0,    0,    0,  816,    0,    0,    0,    0,    0,    0
  945. ,    0,  538,    0,   49, 7407, 7410,   37,    0,  277, 7412
  946. , 7414, 7416, 7418,    0,  333,    0,  749,    0,   55,   56
  947. , 7420,   58,   59,   60,    0,    0,   61,   62,   63,   64
  948. ,    0,   65,   66,   67, 7422, 7424, 7426, 7430, 7432,    0
  949. ,   42,    0,   35, 7434,   37,   44,    0,    0,    0,    0
  950. ,    0,    0,    0,    0,    0,    0,    0,    0,  579,  126
  951. ,    0,    0,   34,    0,    0,  127,  102,   39, 7436,   41
  952. ,    0,  154, 7439,   39,   40, 7441,  581,   44, 7443,    0
  953. ,    0,   43,    0,   44,    0,    0,   46,    0,    0,    0
  954. ,    0,  155,  680,    0,   35,   36, 7445,    0,    0,    0
  955. ,    0,  682,  362,    0,    0,    0,    0, 7447,  246,    0
  956. ,   83,  156,  304,    0,    0,    0,    0,    0,   48, 7449
  957. ,  167,    0,    0,    0,  495,   39,  496,   41,    0,    0
  958. ,   42,    0,    0,   43,  711,   44,    0,    0,  247,  455
  959. ,    0,  865,  684,  685,  686, 7451, 7453,   51,  314,    0
  960. ,  105,   52,    0,    0,    0,    0, 7455,   53, 7457,    0
  961. ,   55,   56, 7459,   58,   59,   60,    0,    0,   61,   62
  962. ,   63,   64,    0,   65, 7462,   67, 7464, 7466, 7469, 7471
  963. , 7473,    0,    0, 7476,   50,   51,    0,    0,    0,   52
  964. ,    0,    0,    0,    0,    0,    0,    0, 7478,    0,    0
  965. ,   61,   62,   63,   64,    0,   65, 7481, 7484, 7487, 7493
  966. , 7497, 7499, 7501,   67, 7504,   69,    0,   43, 7506,   44
  967. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,  464
  968. ,    0,    0,    0,    0,    0,   49,   50,   51,    0,    0
  969. ,  923,   52,    0,    0,    0,    0,    0,    0,  467,    0
  970. ,   55,   56,   57,   58, 7508, 7510,    0,    0,   61,   62
  971. ,   63,   64,    0,   65,   66,   67,   68,   69,    0,    0
  972. ,   70,  249,    0,  689,    0,    0,    0,    0,    0,    0
  973. ,    0, 7512,    0,    0, 7514,    0,    0,   35,   36,   37
  974. ,    0,  253,  151,    0,    0,    0,    0,    0,    0,    0
  975. ,  668,    0,    0,    0,  828,    0,    0,    0,    0,    0
  976. ,    0, 7516,    0,    0,    0,    0,    0,  102,   39, 7518
  977. , 7520,   51,    0,   42,  381,   52,   43,  607,   44,    0
  978. ,    0,    0,    0,    0,  540,    0,    0,    0,    0,    0
  979. ,    0,    0,   61,   62,   63,   64,    0,   65,   66,   67
  980. , 7524,   69, 7526, 7528, 7530,    0,    0,    0,    0,  498
  981. ,  541,  499, 7532,  501,    0,    0,    0,    0,    0,    0
  982. ,    0, 7534,    0,    0,  285,  640,    0,    0, 7536,    0
  983. ,   98,    0,  102,   39,   40,   41,    0,    0,   42,    0
  984. ,  241,   43,    0,   44,    0,    0,  316,    0,    0,  866
  985. ,    0,  650,  829,    0,  652,    0,    0,    0,    0,    0
  986. ,    0,    0,    0,    0,    0,  157,    0,    0,    0,  158
  987. ,    0,  159,    0,    0,    0,    0,    0,  933,   49, 7538
  988. ,   51,    0,    0,    0, 7541,  467,    0,  340,    0,    0
  989. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,  852
  990. ,    0, 7543,   62, 7545,   64,  262,   65,   66,   67,   68
  991. , 7547,  817,    0,   70,  257,    0,  151,    0,    0,  160
  992. ,    0,    0,    0,  903,    0,    0,    0,    0,    0,    0
  993. ,    0,    0,    0,    0,    0,  614,    0,  316,    0,    0
  994. ,  317,    0,    0,   49,   50,   51,  376,  126,    0,   52
  995. ,    0,    0,    0,  127,    0,    0,    0,    0,   55,   56
  996. ,   57,   58,   59, 7549,    0,    0,   61,   62,   63, 7551
  997. ,  363, 7554, 7556,   67,   68,   69,    0,    0,   70,    0
  998. ,    0,    0,    0,    0,    0,    0,    0,  713,    0,   34
  999. ,  714,    0,    0,    0,    0,    0,  596,    0,    0,  136
  1000. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1001. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,   96
  1002. ,  124,   35,   36,   37,    0,    0,    0,    0,    0,  703
  1003. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1004. ,    0,    0,    0,  125,  126,    0,    0,    0,    0,    0
  1005. ,  127, 7558, 7560,   40,   41,    0,  382,   42,    0,    0
  1006. ,   43,    0, 7562,    0,    0,    0,    0,    0,    0,    0
  1007. ,  217,    0,    0,  515,  516,    0,    0,    0,    0,    0
  1008. ,    0,  468,    0,    0,  469,    0,  465,  752,   98,    0
  1009. ,    0,    0, 7564,  516,    0,    0,    0,    0,  791,    0
  1010. ,    0,    0,    0, 7566,  124,    0,    0,    0, 7569,    0
  1011. ,    0,  518,    0,    0,    0,    0,    0,    0,    0,    0
  1012. ,  854,    0,    0,  124, 7571,    0,    0,    0,  548,    0
  1013. ,    0,    0,    0,    0,    0,  151,    0,    0,    0,    0
  1014. ,    0,    0,    0,    0,  286,    0,    0,  521,    0,    0
  1015. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,  376
  1016. ,  126,    0, 7573,   50,   51,    0,  127,    0, 7575,    0
  1017. ,    0,    0,    0,    0,    0,    0,   34,   55,   56,   57
  1018. ,   58, 7577,   60,    0,    0,   61,   62, 7579,   64,    0
  1019. , 7581,   66, 7583, 7586, 7588,  659,    0,   70, 7590,  533
  1020. ,    0, 7592,  524,  525,  526,  527, 7594,  529,   35,   36
  1021. ,   37,  530,  531,  532,    0,    0,    0,  308,  533,    0
  1022. ,  534,  479,    0,    0,   80,    0,    0,    0,  669,    0
  1023. ,    0,    0,    0,    0,   34,    0,    0,    0,  102,   39
  1024. ,   40,   41,    0,    0,   42,    0,    0, 7596,    0,   44
  1025. ,    0,    0,  888,    0,    0,    0,    0,    0,  137,    0
  1026. ,  238,    0,    0,    0,    0,    0,   35, 7598,   37,  878
  1027. ,    0,    0,    0,   81,    0,    0,    0,    0,  411,  558
  1028. ,    0,    0,  221,    0,    0, 7600,    0,    0,    0,    0
  1029. , 7602,    0,    0,  714,    0,    0,  102,   39,   40,   41
  1030. ,    0,    0,   42,    0,    0,   43,  169,   44,    0,  335
  1031. ,  336,  262,    0,    0,    0,    0,    0,    0,    0,    0
  1032. ,  677,    0,  151,    0,  678,    0,    0,    0,    0,    0
  1033. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1034. ,   83,    0,    0,    0,    0,    0,    0,    0, 7604, 7606
  1035. , 7609,   51,  169,    0,    0, 7611,    0,    0,    0,    0
  1036. ,    0,    0,  316,  421, 7613, 7615,   57, 7617,   59, 7619
  1037. ,   34,    0, 7621,   62,   63,   64,   17,   65,   66,   67
  1038. , 7623,   69,    0,   34,   70,    0,    0,    0,    0,    0
  1039. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1040. ,    0,    0,   35,   36,   37,    0,  889,   49,   50, 7625
  1041. ,    0,    0,  384,   52,    0,   35, 7627,   37,    0,    0
  1042. ,  101,  385,   55,   56,   57, 7629,   59,   60,   18,   19
  1043. ,   61, 7631, 7633, 7636,   40, 7639, 7641,   67, 7643,   69
  1044. ,  735,   43,   70, 7645,    0,  102,   39,   40,   41,    0
  1045. ,    0,   42,    0,    0,   43,    0,   44,    0,    0,    0
  1046. ,   34,    0,    0,    0,    0,    0,   34,    0,    0,  163
  1047. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1048. ,    0,    0,    0,    0,   46,    0,    0,    0,    0,    0
  1049. , 7647,    0, 7649,   36, 7651,   22, 7653,  103, 7655, 7658
  1050. ,   37,    0,    0,    0,    0,   47,    0,    0,    0, 1039
  1051. ,    0,    0,    0,    0,    0,    0,   48,    0,  104,    0
  1052. ,    0,    0,   38,   39, 7661,   41,    0,  513, 7663, 7665
  1053. , 7667, 7669, 7671,   44,   42, 7673, 1039,   43, 7675, 7677
  1054. ,  684, 7679,  686,   49,   50,   51,    0,    0,    0,   52
  1055. ,    0, 1039,    0,    0,    0,    0, 7682, 7687, 7690, 7693
  1056. ,   57, 7695, 7697, 7699,    0,  109, 7702, 7704,   63,   64
  1057. ,    0, 7706, 7709, 7712, 7715, 7720, 7724, 1039, 7726, 7728
  1058. , 7730,   63, 7735, 7738, 7741, 7744, 7747, 7749, 7752, 7755
  1059. ,   36, 7760, 7763, 7765,    0, 7767,    0,   44,    0,  935
  1060. ,    0,  262,    0,    0,    0,    0, 7769,   49, 7771, 7773
  1061. ,    0,    0,  151,    0,    0,    0,   30,   31,    0,  102
  1062. ,   39,   40,   41,    0,    0,   42,    0,  716,    0,    0
  1063. ,    0,    0,    0,   49,   50,   51,    0,    0,  628, 7775
  1064. ,   50,   51,    0,    0,    0, 7777,   54,    0,   55,   56
  1065. ,   57,   58,   59,   60,   55,   56, 7779, 7781, 7783, 7786
  1066. ,    0,   65, 7789, 7791, 7793, 7796,  467,   65, 7798,   67
  1067. , 7800,   69,    0,    0,   70,    0,    0,    0,    0, 7802
  1068. ,    0,    0,  755,    0,  364,  178,    0,    0,    0,    0
  1069. ,    0,   49,   50,   51,    0,  225,    0,   49, 7805,   51
  1070. ,    0,   32,  766, 7807,  408,  819,  409,    0,    0,    0
  1071. ,    0,    0, 1364,    0,  410,    0, 7809,  411,    0,    0
  1072. ,   61,   62,   63,   64,    0,   65, 7811, 7813,   68,   69
  1073. , 7815, 7818, 7820,    0,  225, 1360,   52,    0,    0,  415
  1074. ,    0,    0,  793,    0,    0,    0,    0,    0,  416,    0
  1075. ,   34,    0,    0,  417,    0,  418,   64,    0, 7824, 7826
  1076. ,   67,   68,   69,    0, 1360,    0,    0,  419,    0, 7828
  1077. ,   41,    0,    0,    0,  936,    0,    0,    0,    0,    0
  1078. ,    0,  316,   35,   36, 7830,    0,  102,    0,   40, 7832
  1079. ,    0,    0,    0,    0, 7834,   34,    0,    0,    0,  890
  1080. , 7836,    0,    0,    0,    0,    0,    0,  408,    0,  409
  1081. ,    0,    0,   38, 7838, 7840, 7842,    0,  410, 7844, 1364
  1082. ,  411,   43,    0,   44, 1110, 7846, 1110,   35, 7849, 7851
  1083. , 1360,    0,    0,  413,  414,    0,    0,    0, 1360,    0
  1084. ,    0,    0, 7853,    0, 1110,    0,  661,    0, 1041,    0
  1085. ,    0, 7855, 1041,    0, 1041,    0,  417, 7857, 7859,   40
  1086. , 7861,    0,    0,   42,   46,    0, 7863, 7865,   44,    0
  1087. , 7867,    0,   40,   41,    0,    0,    0,    0,   49,   50
  1088. , 7869,    0, 1041,    0,    0,   47,    0, 1041, 1041, 1041
  1089. , 1041, 1041, 7871, 7873, 7875, 1041, 7877, 7880,   50, 7883
  1090. , 1041, 1041,    0, 1261,  767, 1041,    0, 7885, 1041, 7887
  1091. ,  469,    0,  937,    0,  587,    0,    0,    0, 7889,  471
  1092. ,  386,  584, 7891, 7894, 7896, 7899,  429,  430, 7902, 7905
  1093. , 7907, 7909,  435, 7911, 7913, 7915, 7917, 7919, 7921, 7923
  1094. , 7925, 7927,   59, 7929,    0,    0, 7931,   62, 7933, 7936
  1095. ,   35, 7938, 7941,   67, 7944,   69,    0,  140,   70,  141
  1096. ,    0,    0,  925,    0,    0,    0,    0,    0,   49,   50
  1097. ,   51,    0,    0, 7947, 7949,  448,  515,  516,    0,   83
  1098. ,  102, 7953, 7956, 7958,   56,   57, 7961,   59, 7965,   43
  1099. ,    0, 7967,   62,   63,   64,  104, 7969, 7971,   67,   68
  1100. ,   69,    0,   34,   70,    0,    0,  105,  124,    0,    0
  1101. ,  547,  225,    0,    0, 7973,    0,    0,    0, 7975,    0
  1102. ,    0,  691,    0,    0,  424,  425,  426, 7977,  428,  429
  1103. , 7980, 7982, 7984, 7987, 7989, 7994, 7998,  437, 8000, 8002
  1104. ,  440, 8004, 8006,  443,  339,    0,    0,  479,   55,   56
  1105. ,   57, 8008,   59, 8010,    0,   98,   61, 8013, 8016, 8018
  1106. ,   36, 8021, 8023,   67, 8025, 8028, 8030, 8033, 8035,    0
  1107. ,   42,  101,    0,   43,    0,   44,  446,  447,  448,   34
  1108. ,    0,    0,    0,    0,    0,    0,    0,  390,    0, 8037
  1109. ,   39, 8039, 8041, 8043,    0, 8046, 8048, 8050, 8053,   41
  1110. ,   44,    0, 8056,    0,  534, 8058,  350, 8060,    0,    0
  1111. ,    0,   35,   36,   37,   61,   62,   63,   64,    0,   65
  1112. ,   66,   67, 8062,   69,    0,    0,   70,    0,   89,    0
  1113. ,    0,    0,    0,    0,    0, 8064,    0, 8066,    0,    0
  1114. ,    0,  495,   39,  496, 8069,    0,    0, 8071,  151,    0
  1115. , 8073,    0,   44,    0,  880,    0,    0,    0,  367,    0
  1116. ,  505,    0,  241,    0,    0,    0,    0,    0,    0,  455
  1117. ,    0,    0,    0,  650,  856,   49, 8075,   51,    0,    0
  1118. ,  105,   52,   35,   36,   37,    0,    0,  277,    0,    0
  1119. ,  263,    0,  106,  497,    0,    0,    0,  892,   61,   62
  1120. , 8077, 8080,   51, 8083,   66, 8085, 8087, 8089,   50,   51
  1121. ,   70,  905,  102, 8091, 8095, 8098,  459,    0, 8100,  591
  1122. ,    0,   43,    0, 8102,   62, 8104,   64,    0,   65,   66
  1123. , 8106, 8108, 8110, 8112,   34, 8114, 8116, 8118,   68,   69
  1124. ,    0,    0,   70,  127,    0,    0,   35,   36, 8120,    0
  1125. ,    0,    0,   49,   50,   51,    0,    0,    0,   52,    0
  1126. ,  170,    0,    0,    0,  561,    0,   35, 8122, 8124,   57
  1127. ,   58, 8126, 8130,  368,  631, 8132, 8134, 8137, 8141,   41
  1128. ,   65,   66, 8144, 8146, 8148, 8150,    0, 8152,    0,    0
  1129. ,    0,    0,    0,    0,    0,   83, 8154,   39,   40,   41
  1130. ,    0,  734,   42,    0,   85, 8156,    0,   44,    0,    0
  1131. ,    0,   34,    0,    0,    0,    0,    0,  737,   34,    0
  1132. ,    0,    0,    0,   49, 8158,   51,    0,    0,  223,   52
  1133. ,    0,  481,  169,    0,  264,    0,    0,    0,   55,   56
  1134. ,   57, 8160, 8162, 8164, 8168, 8170, 8172, 8174,   63, 8176
  1135. ,   35, 8178, 8180, 8182,   68, 8185, 8187,   36, 8189,    0
  1136. ,  650,  869,    0,  652,   27,    0,    0,    0,    0, 8191
  1137. ,    0,    0,    0, 8193,   39, 8195, 8197,    0,  499, 8199
  1138. , 8201,   39, 8204, 8206,   44,    0, 8208, 8210, 8212, 8214
  1139. ,    0, 8218,   42,   52,    0,   43,    0,   44,    0,    0
  1140. ,  111,    0,    0,    0,    0,    0,    0,   49,   50,   51
  1141. , 8220, 8222,   63, 8225,    0,   65,   66, 8227,   68,   69
  1142. ,    0, 8229, 8231,    0,  795,    0,    0,    0,    0,    0
  1143. ,   61,   62,   63,   64,    0,   65,   66,   67,   68,   69
  1144. ,    0,    0,   70,    0,    0,    0, 8234,    0,    0,    0
  1145. ,    0,    0,  247,  262, 8236,    0,    0,  706,  651,  632
  1146. ,  652,    0,    0,    0,  151,    0,   34,    0,    0,    0
  1147. , 8238,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1148. ,    0,    0,    0,    0, 8240,   50,   51,  893,    0,  370
  1149. ,   52,   49,   50,   51,    0,  225,    0, 8242, 8244, 8247
  1150. ,   37,    0,    0,   52,    0,    0,  265,   61,   62,   63
  1151. ,   64,    0,   65,   66, 8249, 8251, 8253,   64,    0, 8255
  1152. , 8257, 8259, 8261, 8263,    0,   65, 8265,   67, 8267, 8270
  1153. ,   40,   41,   70,    0, 8272,    0,  467, 8274,  169, 8276
  1154. ,   83,    0,    0,    0,    0,    0,    0,    0,  453,   85
  1155. ,  167,    0,    0,    0,    0,  124,    0,    0,    0,    0
  1156. ,    0,    0,    0,    0,  340,    0,    0, 8278,   39,   40
  1157. ,   41,    0,    0,   42,    0,    0,    0,    0,    0,    0
  1158. ,    0,    0,    0,    0,    0,  249,    0,    0,    0,   34
  1159. ,    0,    0,    0,    0,    0,  170,    0,    0,    0,  102
  1160. ,    0, 8280,   41,    0,    0,    0,    0,    0,    0,    0
  1161. ,    0,    0,  151,    0,    0,    0,    0,    0,    0,    0
  1162. ,    0, 8282, 8284, 8286,    0,    0,  821,    0,  483,    0
  1163. ,    0,    0,    0,  738,   34,    0,  168,    0,    0,   49
  1164. , 8288,   51,    0,  645,    0,   52,    0,    0,    0,  320
  1165. ,    0, 8291,   39, 8294,   41,    0,    0,   42,  609,    0
  1166. ,   43,    0, 8296,   62,   63, 8298, 8300, 8302, 8304,   67
  1167. ,   68,   69,   35, 8306, 8308,  225,    0,    0,   49,   50
  1168. ,   51,    0,    0,  484,   52,   45,    0,    0,    0,    0
  1169. ,    0,  769,    0,    0,    0,    0,  102,   39, 8310, 8312
  1170. ,   37,    0, 8314, 8316, 8319, 8321,    0,   44, 8323,   68
  1171. , 8325, 8327,   51,   44,    0,    0,  844,    0,    0,    0
  1172. ,    0,    0,    0,  917, 8329,    0,    0,  857,  102,   39
  1173. ,   40,   41,    0,    0, 8331,   48,    0,   43,  637,   44
  1174. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1175. ,    0,  615,    0,    0,  290,    0, 8333,   36,   37,  755
  1176. ,  756,    0,   49,   50,   51,    0,    0,    0,   52,  262
  1177. ,    0,    0,    0,    0,   53, 8335,    0,   55,   56,   57
  1178. , 8337,   59,   60,    0,    0,   61, 8339, 8342, 8344,   41
  1179. ,   65,   66, 8347,   68,   69,   43,    0, 8349,    0,    0
  1180. ,    0,  460,    0,    0,    0,    0,  673,   49,   50,   51
  1181. ,    0,    0, 8351, 8353,   50,   51,    0,    0,    0,   52
  1182. ,   35,   36, 8355,    0,    0,    0,    0,    0,    0,    0
  1183. ,   61,   62, 8357,   64,    0,   65, 8359, 8361, 8363, 8365
  1184. , 8368, 8370, 8372,   67, 8374, 8376,    0,    0,   70,    0
  1185. ,  747,   39,   40,   41,  938,  639,   42,    0,    0, 8378
  1186. ,    0,   44,   61,   62,   63,   64,    0,   65,   66,   67
  1187. , 8381, 8383,    0,    0,   70,    0,  102,    0,   40,   41
  1188. ,    0,    0,    0,    0,    0,    0,  488,    0,  125,  126
  1189. ,    0,    0,    0,    0,    0,  127,    0,   49, 8385,   51
  1190. ,    0,    0,    0,   52,    0,    0,    0,    0,  217,    0
  1191. ,    0,    0,    0,  783,    0,    0,  797,    0,  148,    0
  1192. ,   61,   62,   63, 8388,    0,   65,   66,   67,   68,   69
  1193. , 8390,    0,   70,    0,  650,  845,    0,  652,    0,  555
  1194. ,  674,    0,    0,    0,    0,    0,    0,    0,  292,  739
  1195. ,   34,    0,    0,    0,    0,    0,    0,    0,    0, 8392
  1196. ,  720,   49,   50,   51,    0,    0,  225, 8394,    0,    0
  1197. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1198. ,    0,  757, 8396,   36, 8398,   62, 8400, 8402, 8404, 8406
  1199. , 8409,   67,   68, 8411,    0,    0, 8413,  634,    0,    0
  1200. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,  321
  1201. ,    0,    0,  102,   39, 8415, 8418,   37,    0,   42,  610
  1202. ,    0,   43,    0,   44,    0,    0,    0,    0,    0,    0
  1203. ,    0,    0,    0,    0,  149,    0,    0,    0,    0,  846
  1204. ,    0, 8420,  115,  116, 8422, 8425, 8427, 8429,    0,  118
  1205. , 8431,  120,  467, 8433,    0, 8435,    0, 1364,  411,    0
  1206. ,    0,  882, 1390,    0, 1390,    0,    0,  412, 1360,    0
  1207. , 8437,  413,  414,    0,  310,    0, 1360,    0,    0,   34
  1208. ,  415,    0, 1390,    0,    0,  262,  169,    0,    0,  416
  1209. ,  870,    0,    0,    0,  417,    0, 8439,   49, 8441,   51
  1210. ,    0,  335, 8443,    0,    0, 1360,    0,    0,  419,    0
  1211. ,   40, 8445, 8447,   37,    0,    0,    0,  461,    0,    0
  1212. ,    0,    0,  721,   49,   50,   51,    0,    0, 8449,   52
  1213. ,    0,    0,    0,    0,  692,  420,    0,    0,  267, 8451
  1214. ,    0,  102, 8453, 8455,   41,  784,   61, 8457,   63,   64
  1215. ,   43,   65, 8459, 8461,   68, 8463,   50, 8465, 8467,    0
  1216. ,   96,   52,    0,    0,    0,    0,    0,  616,    0, 8469
  1217. ,    0,    0,    0,    0,    0,    0,  488,    0,   61,   62
  1218. ,   63, 8471,    0,   65,   66,   67,   68,   69,    0,    0
  1219. ,   70,    0, 8473,    0,    0,    0,    0,    0,    0,    0
  1220. ,    0,    0,    0,  908,    0,    0,  833,    0,    0,    0
  1221. ,    0,    0,    0,    0,  240,    0,    0,    0,    0,   49
  1222. ,   50,   51,    0,    0,    0,  151,    0,    0,    0,    0
  1223. ,    0,  486,    0,    0,    0,  310,    0,    0,  895,    0
  1224. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1225. ,    0,  508,   49,   50,   51,    0,    0,    0,   52,  423
  1226. ,    0,    0, 8475,  425, 8477, 8479, 8481,  429,  430,  431
  1227. ,  432, 8483,  434, 8485, 8487, 8489, 8491, 8493, 8495,  441
  1228. , 8497, 8499,   67, 8502,   69,   73,    0,   70,    0, 8504
  1229. ,  227,    0,    0,    0,    0,  445,    0,    0,   35,   36
  1230. ,   37,    0,    0,    0,    0,    0,    0,    0,    0, 8507
  1231. ,    0,    0,    0,    0,  446,  447,  448,    0,    0,    0
  1232. ,    0,    0,    0,  124,    0,    0,    0,    0,  102,   39
  1233. ,   40,   41,    0,    0, 8509,    0,    0,   43,    0,   44
  1234. ,    0,    0,    0,    0,  169,  940,  125,  126,    0,    0
  1235. ,    0,    0,    0,  127,    0,    0,    0,    0,    0,    0
  1236. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1237. ,    0,    0,    0,    0,    0,    0,    0,  169,    0,    0
  1238. ,    0,    0,    0,  635,    0,    0,    0,    0,    0,    0
  1239. ,  311,  599,    0,    0,    0,    0,    0,    0,    0,    0
  1240. ,    0, 8511,    0,   98,  323,    0,    0,    0,    0,    0
  1241. ,    0, 8515,  151,    0,   34,    0,    0,    0,  217,    0
  1242. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1243. ,    0,   89,    0,    0,  170,    0,  722,    0,  301,   49
  1244. ,   50,   51,    0,    0,  302,   52, 8517, 8519,   37,    0
  1245. ,   16,    0,    0,    0,  268,    0,    0,    0,    0,    0
  1246. ,  883,    0,   61,   62,   63, 8521,    0,   65,   66,   67
  1247. ,   68,   69,    0,    0, 8523,    0,  102,   39, 8525,   41
  1248. ,   98,    0,   42,  277,  909,   43,    0,   44,    0,    0
  1249. ,    0,    0,    0,    0,    0,  159,    0,   35, 8527,   37
  1250. ,   37,    0,  929,    0,    0,    0,    0,    0,    0,    0
  1251. ,    0,    0,    0,    0,    0,    0,    0,    0,  230,    0
  1252. ,    0,   96,    0,  487,    0,    0,    0,  102, 8529, 8532
  1253. , 8534,   41,    0,   42,   42,    0,   43,    0,   44,    0
  1254. ,    0,    0,    0,  481,    0,    0,    0,    0,  411,  262
  1255. ,    0,    0,    0, 8536,    0,   40,   41,    0,    0,    0
  1256. , 8538,    0,    0,    0,    0,    0,    0,    0,    0,   34
  1257. ,    0,    0,    0,    0,    0,    0,  169,    0,    0,    0
  1258. ,  772,    0,   34,    0,    0,    0,    0,   49,   50,   51
  1259. ,    0,    0,    0,   52,    0,    0,    0,  376,  126,    0
  1260. , 8541,   35, 8544, 8546, 8549,   58, 8551, 8553,    0,    0
  1261. ,   61, 8555, 8557,   64,   35, 8559, 8561,   67, 8563,   69
  1262. ,    0,    0,   70,  930,    0,    0,  834,    0,    0,    0
  1263. ,    0,   38,   39, 8565,   41,    0,    0, 8567,   49, 8569
  1264. , 8572, 8576,   44,    0, 8578, 8581,   40,   41,    0,    0
  1265. , 8583,    0,    0, 8585,    0,   44,    0,    0,   91,    0
  1266. ,    0,   61,   62,   63, 8587, 8589, 8594,   66,   67, 8597
  1267. , 8600, 8604,   41,   70, 1299, 8607,   13,   14,   43,    0
  1268. ,   44,    0,    0, 8609,    0,    0,  260,    0,    0,    0
  1269. ,    0,    0,  173,    0,  174,   16,    0,  662,    0,    0
  1270. ,    0,    0,  217,    0, 8611, 8613,  176,    0,    0, 8615
  1271. ,  178,    0,    0,    0,    0, 8617,    0,  262,    0,    0
  1272. ,    0,  159,    0, 1008,    0,    0,    0, 1299,  151,    0
  1273. ,    0,    0,    0,    0,   96,    0,   35,   36,   37,    0
  1274. ,    0,    0, 8619,   50,   51,    0,    0,    0,   52,    0
  1275. ,    0,  179,  180, 8621, 8624, 8626, 8629, 8631, 8634, 8636
  1276. , 8638, 8641, 8644,  191,    0, 8648, 8650, 8652, 8654, 8656
  1277. , 8659, 8662, 8664,   68,   69,   43,  169, 8666,   61,   62
  1278. , 8668, 8670,   51, 8672,   66,   67, 8674,   69,    0,    0
  1279. ,   70,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1280. ,    0, 8678,    0, 8680,   62,   63,   64,  570,   65,   66
  1281. ,   67, 8682,   69,    0,  345,   70,    0,  195, 8684,  197
  1282. ,    0,  714,    0,    0,    0,    0,    0,    0,    0,    0
  1283. ,   75,    0,    0,  170,    0,    0,    0,    0,    0, 8687
  1284. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,  312
  1285. ,  151,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1286. ,    0, 8689,    0,    0,    0,    0,    0,    0,    0,    0
  1287. ,    0,    0,    0,    0,    0,  872,  873,   49, 8691,   51
  1288. ,    0,    0,    0, 8693,  294,    0,  488,    0,    0,    0
  1289. ,    0,    0,   55,   56,   57,   58,   59,   60,    0,    0
  1290. ,   61,   62,   63, 8695,    0,   65,   66, 8697,   68,   69
  1291. , 8699,   26,   70,  489,  199,   77,    0,    0,    0,    0
  1292. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,  897
  1293. ,    0,    0,    0,    0, 8702,    0,    0,  836,  637,    0
  1294. ,    0,    0,    0,  694,   30,   31,    0,    0,    0,    0
  1295. ,    0,    0,    0, 8704,    0,  200,  201,  202,  203,    0
  1296. ,  707,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1297. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1298. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1299. ,    0,  172,   13,   14,    0,    0,    0,    0,    0,    0
  1300. ,    0,  837,    0,    0,    0,    0,    0,    0,  204,    0
  1301. ,  823,   16,    0,  663,    0,    0,  512,    0,  295,    0
  1302. ,   40, 8706,  205,    0,    0,  177,  178,    0,  593,    0
  1303. ,  824,  159,    0,   34,    0,    0,  594,   96,    0,    0
  1304. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1305. ,  695,    0,    0,    0,  638,  639,    0,    0,    0,    0
  1306. ,    0,    0,    0,    0,  325,   35,   36, 8709,  180,  181
  1307. ,  182,  183,  184,  185,  186,  187,  188,  189, 8711,  191
  1308. ,    0,    0,    0,    0,  759,  192, 8713, 8716,  326,    0
  1309. ,    0,   34,  169,    0,    0,  102,   39,   40,   41,    0
  1310. ,    0,   42,  296,    0, 8718,    0, 8720,    0,   96,    0
  1311. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1312. ,    0,    0,    0, 8722,   36,   37,    0, 1039,    0,   49
  1313. ,   50, 8724,    0,  195,  196,  197,    0,  207,  208,  209
  1314. ,  210,  211,    0,    0,    0,    0,    0,   96,    0,  170
  1315. , 1039,    0,    0,  102, 8726,   40, 8728,    0,    0, 8730
  1316. ,    0,    0,   43,    0,   44,  862,    0, 1039,  618, 1039
  1317. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,  151
  1318. ,    0,   34,    0,    0, 1039,  490,  277,    0,    0, 1039
  1319. , 1039, 8732, 1039, 1039, 8735, 1285, 1039, 1039, 1039, 1285
  1320. ,    0, 1039, 1039, 8737, 8739,    0, 8741, 8743,   51, 1039
  1321. , 8745, 1039,   52, 8747, 8749,   37,   98,    0,    0,  212
  1322. ,    0,    0,    0,    0,    0,  229, 8751,   26, 8753,   61
  1323. , 8756, 8759,   64,  213,   65,   66,   67, 8761, 8763,    0
  1324. , 8766,   70,    0,  102,   39,   40,   41,    0,    0,   42
  1325. ,    0,    0,   43,    0, 8768,    0,    0,  572,    0,    0
  1326. ,   30,   31,    0,  327,   49,   50,   51,    0,    0,    0
  1327. ,   52,  200, 8770,  202,  203,    0,    0,    0,    0,    0
  1328. ,    0,    0,  640,    0,    0, 8772,    0,   61,   62,   63
  1329. ,   64,    0, 8774,   66,   67,   68, 8776,  800,    0,   70
  1330. ,    0,    0,    0,  215,    0,    0,    0,    0,    0,    0
  1331. ,    0,    0,    0,    0,    0,    0,  244,    0, 8778,    0
  1332. ,    0,  346,    0,   34,    0,    0,    0,  151,    0,    0
  1333. ,    0,    0,    0,    0,  298,    0,    0,    0,    0,    0
  1334. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1335. ,    0,    0,   95,    0,   49, 8780, 8783,   37,  643,  602
  1336. ,   52,    0,   34,    0,    0,    0,    0,    0,    0,    0
  1337. ,    0,    0,    0,    0,  375,  170,    0,   61,   62,   63
  1338. ,   64,    0,   65,   66,   67, 8786, 8788,   40,   41,   70
  1339. ,    0,   42,    0,    0, 8790,   36, 8792,    0,    0,    0
  1340. ,    0,    0,    0,    0,    0,    0,  316,    0,    0,  773
  1341. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1342. ,    0,    0,    0,    0,  102,   39,   40,   41,    0,    0
  1343. ,   42,    0,    0,   43,  941, 8794,  539,  567,    0,  573
  1344. ,    0,    0,  653,    0,    0,  347,    0,    0,    0,    0
  1345. ,    0,    0,    0,    0,    0,  513,    0,    0, 8796,    0
  1346. ,    0,  874,    0,  159,    0,    0,    0,    0,    0,  151
  1347. ,    0,    0,    0,    0,    0,    0, 8798,    0,    0,    0
  1348. ,    0,    0,    0,    0,    0,    0,    0,   83,    0,    0
  1349. ,    0,    0,    0,    0,    0,    0, 8800, 8802,   51,  112
  1350. ,  620,    0, 8805,    0,    0,  113,    0,    0, 8807,    0
  1351. ,  467, 8810,   56,   57,   58,   59,   60,    0,    0,   61
  1352. ,   62, 8812, 8814,    0,   65,   66,   67, 8816, 8818,    0
  1353. ,    0, 8820,    0, 1338,    0, 8822,   50,   51,    0,    0
  1354. ,    0, 8824,  676,  396, 1338,    0,   16,    0,    0,    0
  1355. , 8826, 8828, 8830, 8832, 8835, 8837,    0,  205, 8839, 8841
  1356. , 8843, 8845,  760,   65,   66,   67, 8848,   69,    0,    0
  1357. ,   70,    0,  217,    0,    0,   34,    0,  801,    0,  328
  1358. ,    0,    0,    0,  696,    0,   96,    0,    0,    0,    0
  1359. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1360. ,    0,    0,    0,    0,  159,    0,    0, 8850, 8853, 8855
  1361. ,  400,  278,  708,  518,  279,  884,   98,   34,  520,  402
  1362. ,  121,  802,  123,   34,   35,   36,  603,  376,  354,  126
  1363. ,  355,  126,  127,  803,  151,  102,  804,   39,   34,   40
  1364. ,  102,   42,   35,   40,   36,   41,   43,   34,   42,  476
  1365. ,  277,   96,  522,   83,  848,  527,  911,  529,   49,  299
  1366. ,  774,  532,  405,   52,   37,   76,  495,  533,  496,  534
  1367. ,   25,   41,  479,   26,   35,   27,  348,   36,   42,  199
  1368. ,   43,  213,  623,   68,  280,   40,  343,  918,  411,   39
  1369. ,   43,   34,  241,   40,   30,   41,   44,   31,  497,  105
  1370. ,  470,   35,  471,   36,  262,   49,  124,   34,   50,  825
  1371. ,   49,   52,  678,   50,  151,  102,  107,  743,   40,  108
  1372. ,  218,  473,   56,   57,   61,  125,   58,  102,   62,  126
  1373. ,  474,   59,   39,   63,  262,   60,   40,   64,   61,   66
  1374. ,  217,   62,   42,   67,  127,   63,   68,   64,   69,   43
  1375. ,   35,   65,   36,   66,   44,   37,   70,  151,   68,   49
  1376. ,   69,   50,  406,   52,  151,  875,   55,  876,   58,   60
  1377. ,  575,   63,  102,   64,  697,   49,   39,  826,   50,   40
  1378. ,   65,   51,   41,   68,   42,   69,   52,  775,   49,   43
  1379. ,   50,   70,   51,  709,  611,   49,   59,   50,  710,   60
  1380. ,   62,  232,   65,  113,  863,  476,   67,  679,   68,   62
  1381. ,   69,  153,  262,   64,   70,   65,  129,  478,  151,  479
  1382. ,   50,  806,   51,   50,  262,   51,  114,  115,    2,   83
  1383. ,  116,  120,  151,  499,   66,  500,   67,  501,   68,  159
  1384. ,  885,  377,   49,  813,   50,   35,  169,   51,   36,  681
  1385. ,   37,  682,  604,  356,   59,    3,  698,   60,   68,  102
  1386. ,   69,   39,  481,   43,  685,  535,   89,  488,  340,   34
  1387. ,   50,   96,   67,  776,   68,   37,   70,  102,    6,   39
  1388. ,    7,  864,   40,  169,   41,  919,  763,  330,  233,  316
  1389. ,  281,  376,  163,  151,   72,  886,   49,   50,   35,   51
  1390. ,   36,  777,   68,  102,   69,   39,   43,  130,  900,  724
  1391. ,   34,  244,  877,  231,  408,   36, 1364,  411,  282,   49
  1392. ,  850,  656,  745, 1361,  746,  413,  414,   34,  762,  415
  1393. ,  219,  495,   62,   39,   63,  234,  496,   64,  169,   65
  1394. ,   42,   67,  416,   68,  131,   44,   70, 1360,   36,  497
  1395. ,  102,  420,   39,  169,   41,  422,  303,   49,  379,  421
  1396. ,   50,   52,   14,  173,  245,   61,  314,   62,   16,   63
  1397. ,  151, 1039,   64,   49,   65,   51,  914,   66,   70,  176
  1398. ,  901, 1039,   49,  247, 1039,   51, 1039,  425,  151,  248
  1399. ,  427,   81,  431,   62,   42,  725,  432,  272,  433,   64
  1400. ,  435,  179,   65,  172,  436,  180,   66,  437,  181,   67
  1401. , 1039,  438,  182,   68,  439,  183,   69,  440,  184,  441
  1402. ,  185,  442,  186, 1039,  225,  443,  187, 1039,  188, 1039
  1403. ,  189, 1039,  626,  190,  360, 1039,  191, 1039,  444, 1039
  1404. ,  192,   50,  193,   51, 1039,  194, 1039,  445, 1326,   52
  1405. , 1326,  446,   62,  447,   63,  448,   64,  499,  494,   66
  1406. ,  500,   67,  501,   68,   41,   34,   42,  249,  449,  250
  1407. ,   96,  251,  411,  198,  677,   31,  667,  203,   52,  331
  1408. ,  809, 1396,  810,   55,   57,  556,   63,  733,   96,   65
  1409. ,  236, 1396,   66,    2,   68,  284, 1396,  169,  100,  159
  1410. ,  106,   34,   50,   35,   51,   36,  200,   52,   34,  201
  1411. ,  202,  606,  203,  332,   57, 1213,   68,   38,   69,   39
  1412. ,  278,  421,   35,   40,   36,   41,   37,   70,   36,   43
  1413. ,  580,   40,  252,  102,   42,   41,   43,   42,  539,  750
  1414. ,   37,  245,   47,  932,   85,  789,   49,   34,   50,  151
  1415. ,  248,  751,   54,  505,  456,   57,  727,   66,  497,   68
  1416. ,  887,   49,   69,   50,   35,   51,   36,  712,   37,   70
  1417. ,   49,   52,  698,   81,  262,   61,   66,  315,   62,   67
  1418. ,    5,   63,  151,   68,  102,  135,   10,   64,   69,   39
  1419. ,    7,  451,   40,   65,   41,   66,   70,    8,   68,   42
  1420. ,   70,  362,  387,   59,   34,   60,  334,   71,  225,  237
  1421. ,   96,   11,   40,   49,   41,   34,   50,   12,   68,  254
  1422. ,   35,  255,   36,  256,   37,   70,  542,  500,  790,  627
  1423. ,  641,  511,   50,  779,  658,   52,  457,  643,   61,   63
  1424. ,   96,   69,  277,  557,   60,  840,  582,   64,  583,   65
  1425. ,   66,   98,  830,  102,   39,  277,   44,  543,  515,  544
  1426. ,  567,  217,  161,  853,  734,  520,  262,  867,   49,   52
  1427. ,  277,  124,   59,   63,  162,   65,  549,  476,   67,  550
  1428. ,   68,  551,   69,  552,  855,  307,  523,  534,  934,  528
  1429. ,   43,   81,  409,   36,  841,  318,  780,  690,  497,   13
  1430. ,   49,   85,   14,   50,  167,  831,   52,   55,   15,  818
  1431. ,   56,   58,   16,  262,   60,   61,  383,  151,   68,   51
  1432. ,  170,  488,   36,   58,   96,   62,   20,  915,   63,   38
  1433. ,   64,   39,   21,   65,   41,   66,  168,   68,   42,  545
  1434. ,   44,  680,  159,  704,   35,   98,   37,  102,   23,   35
  1435. ,  728,   40,  682,   36,   41,   34,   40,  102,   42,   39
  1436. ,  105,  879,   40,   41,   43,  169, 1039,  715,   96, 1039
  1437. ,  278,  683,   44,  685, 1039,  106,   35,  753,  502,  258
  1438. ,   49,   36,   34,   50,   37,   55,   51,  792,   56,   58
  1439. ,  107,   59,   52,  309,   60,  108, 1039,   61,   62,  110
  1440. , 1039,   65,   55, 1039,   66,   56, 1039,   67,   57,  277
  1441. , 1039,   46,   68,   58, 1039,   69,   59,   24, 1039,   60
  1442. , 1039,   70, 1039,   61,  567,  660, 1039,  102,   62,   40
  1443. ,   64,   25, 1039,   41,   26, 1039,   65,   27, 1039,  458
  1444. ,   66,  102,   67,   39, 1260,   68,  904,   40,   69,   41
  1445. ,  421, 1039,   35,   82, 1039,   37,   70,   42, 1039, 1039
  1446. ,  452,   43,   47,   48,  138,   50,   28,   51,   29,   49
  1447. ,   52,   52,   53,   57,   61,   58,   62,   59,   63,  466
  1448. ,  842,   60,   64,   61,   66,   62,   67,   63,  559,   68
  1449. ,   64,   69,   66,   70,  151,   68,  670,  287,  259,   50
  1450. ,  671,   52,  151,  916, 1364,   66,  412,   67, 1360,  832
  1451. ,  413,   49,  414,   50,   70,  169,  488,   51,  273,  260
  1452. ,  546,   66,   40,   71,  924,   37,   41,  170,  420,  222
  1453. ,  820,  344,   39,  288,  919,   40, 1364,   41,   42,  225
  1454. , 1110, 1041,  164,   36, 1110,   37,  412,  415,  239,  416
  1455. ,  422,  102, 1041,   39,  418,   41,   34,   43, 1110, 1360
  1456. , 1041,  720,  419,  169,   51, 1041,   35, 1041,   36, 1041
  1457. ,   37,   48, 1041,  560,   49,  420,  101,   51, 1041, 1041
  1458. ,  468,  567, 1041,  470,   34,  588,  585,  102,   49,   39
  1459. ,   50,  427,   40,   51,  428,   41,  431,   42,   33,   52
  1460. ,  432,  262,  433,  434,   43,  436,   44,  437,  472,   53
  1461. ,  438,   54,  439,  170,  440,   55,  441,   56,  442,   57
  1462. ,  586,  151,   58,  717,   60,   61,  473,  868,   63,  444
  1463. ,   64,  474,   65,  589,   36,   66,   37,  139,  422,   68
  1464. ,  445,  446,  475,  891,   52,  447,  337,   49,  387,   39
  1465. ,   50,   40,   55,   51,   41,   58,   96,  388,   42,   60
  1466. ,   84,   61,   44,   65,  389,  781,   66,  815,  672,  476
  1467. ,  106,   34,  427,  629,  430,  477,  431,  548,  721,  432
  1468. ,  478,  433,   49,  754,  434,   34,   50,   35,  736,  435
  1469. ,   51,   36,  436,   37,  438,   96,  439,   52,  441,  365
  1470. ,  442,  338,  444,   58,  511,  262,   60,  445,   62,  261
  1471. ,  794,   63,   35,   71,   64,   37,   65,  172,   66,  151
  1472. ,   68,  102,   69,   39,   35,  319,   40,   36,   41,   37
  1473. ,   70,  102,  391,   40,   49,   41,   50,  549,   51,  142
  1474. ,   42,  550,  551,  102,  552,   39,   52,   43,  503,   40
  1475. ,  533,   42,   43,  392,   44,   98,   68,   96,  277,   96
  1476. ,  590,  504,  262,   41,  366,   42,   16,   43,   34,  652
  1477. ,   50,   49,  480,   63,   50,  843,   64,  169,   65,  726
  1478. ,   67,   52,   68,   49,   69,  782,  718,   39,   52,   34
  1479. ,  262,   40,  214,   41,   42,  339,   61,   44,   63,  151
  1480. ,   67,   61,   68,   62,   69,   63,   64,  143,   70,   65
  1481. ,  125,   66,  126,   67,   37,  144,   55,   36,   56,   37
  1482. ,  630,   59,  506,  289,   60,  145,   61,  209,  102,   62
  1483. ,  210,   39,   63,  211,  146,  926,   40,   64,   42,   67
  1484. ,   68,  159,   69,  165,   43,  262,   44,   70,  151,  102
  1485. ,   43,   86,   34,   50,   58,  482,  200,   59,  201,   35
  1486. ,  608,   60,  202,   36,  203,   37,   61,  376,   62,  126
  1487. ,  241,   64,   65,   36,   66,   37,   67,  127,  155,   69
  1488. ,  369,   35,  553,   37,   70,  213,  262,  102,  156,  768
  1489. ,   40,   41,  597,   42,  500,  501,  151,  102,   43,   40
  1490. ,  214,   41,  102,   42,   49,   39,   50,   40,   51,   41
  1491. ,  170,   43,   44,   87,   61,  376,   62,  126,  147,   64
  1492. ,   52,   67,  127,  245,  166,   70,  246,  351,  729,  241
  1493. ,  705,  592,  151,  248,  316,   49,   49,   52,   50,   35
  1494. ,  371,   51,   36,   67,   61,   68,   62,   69,   63,   70
  1495. ,   65,   61,   66,   62,   67,   63,   68,   64,   69,   66
  1496. ,   70,  906,   68,  102,   69,   39,  217,   42,   43,   35
  1497. ,   44,   37,  927,  102,  562,   40,  796,   35,  216,   36
  1498. ,  554,   37,   34,   50,  166,  646,  151,   38,  881,   40
  1499. ,   61,   44,  894,   64,   34,   35,   65,   36,   66,   37
  1500. ,   36,  341,   37,   70,   35,   40,   36,   41,  102,   42
  1501. ,  730,   39,   46,   40,  274,   41,   43,   42,   67,   49
  1502. ,   69,   43,   50,   34,   47,  217,   42,   35,  291,  633
  1503. ,   54,  151,   58,  151,  102,   62,   39,   63,   34,   40
  1504. ,   64,   42,   67,   44,   70,  822,  151,   49,   52,   37
  1505. ,  266,  719,   63,   61,   66,   62,   67,   63,   68,   64
  1506. ,   49,   69,  563,   50,   65,   51,   66,   70,   68,   96
  1507. ,   69,   52,   43,  564,  507,  151,   68,  124,   69,  278
  1508. ,   50,   71,  241,   64,  907,  485,  645,  224,   52,  647
  1509. ,   34,   35,   61,   37,   63,  102,   64,   49,   50,   40
  1510. ,   65,   51,   41,   66,  112,   69,  565,   70,  113,   35
  1511. ,  322,   40,   36,   41,  169,  114,  858,  102,  150,  408
  1512. ,   39,   40,  117,  409,   41,   42,  119, 1364,   43,  410
  1513. ,   44,  393,  293,  418,  151,  170,   50,  939,   96,   41
  1514. ,   35,  488,   36,  151,  298,  798,  598,  770,   39,  421
  1515. ,   40,   62,   42,   66,   44,  731,   67,   49,   69,   51
  1516. ,  121,   70,  122,  123,   88,  847,   64,  871,  422,  424
  1517. ,  225,  426,  648,  427,  740,  428,   34,  433,  316,  435
  1518. ,  771,  436,  758,  437,   61,  438,   62,  439,   63,  440
  1519. ,   64,  442,   65,  443,  620,   66,   68,   72,  444,   77
  1520. ,  226,  859,  566,   96,   42,  928,  170,  511,  262,   96
  1521. ,  128,   35,  372,   36,   90,   34,   64,   70,   74,  511
  1522. ,   40,   36,   35,   39,  567,  102,   40,   39,   41,   40
  1523. ,  102,  785,  277,  151,   96,  455,  316,  509,   55,   36
  1524. ,  693,   56,   37,  127,   57,   59,  228,   34,   60,  105
  1525. ,   62,   63,  151,   65,   36,   66,   37,   68,  394,  421
  1526. ,   40,  811,   42,   50,   35,   49,   51,   36,   43,   50
  1527. ,   37,   51,   52,  860,  102,   39,   52,  568,   42,  569
  1528. ,   43,   64,   49,   50,  636,  324,  152,   92,   65,   51
  1529. ,   26,   68,  102,   67,   69,   39,  649,   68,   40,  171
  1530. ,   69,   42,  172, 1008,   46,   34,   47,  169,  175,  352
  1531. ,  177,   48,  159,  455,   49,  105,  373,  181,   53,  182
  1532. ,   54,   49,  183,   50,  184,   55,   51,  185,   56,  186
  1533. ,   57,  187,  680,   58,  188,   59,   52,  189,  170,  374
  1534. ,   60,  190,  861,   61,  102,   62,   39,   63,   40,   64
  1535. ,   41,  278,  192,   65,  269,  193,   66,  194,   42,   67
  1536. ,   44,   70,   49,   63,   50,   64,  510,   65,   52,  617
  1537. ,   68,   93,  511,  275,   61,   98,  896,   68,  786,  567
  1538. ,  196,  262,  342,  313,   76,   50,   71,   52,  277,   64
  1539. ,  198,   67,  225,  675,  600,   25,  835,  395,   42,  270
  1540. ,  169,   41,  175,   37,  179,  170,  190,  732,  601,  193
  1541. ,  799,  194,   43,  511,   44,   98,   35,  571,  297,  206
  1542. , 1039,   39, 1039,   41, 1039,   42, 1039,  225,   94, 1039
  1543. ,  491, 1039,  376,  126,  225, 1039,   49, 1039,   50, 1039
  1544. ,  127,   35,  741,   36,  276,  241,   25,  169,  230,   27
  1545. ,   62,  271,  199,   63,   78,  650,   68,  282,  651,   69
  1546. ,  652,  100,  931,   44,  837,  201,  641,  170,   65,  214
  1547. ,   69,  277,  637,  169,   50,   35,  619,   51,   36,  642
  1548. ,   68,  102,   69,   39,   43,   35,   44,   37,  639,   44
  1549. ,  787,  262,  574, 1338,   49,   85,   50,  167,  262,   52
  1550. ,  492,  812,  151, 1338,   55,  278,   63,  742,   64,  353
  1551. ,   68,   13,   69,   14,   70,  216,   49,  305,   52, 1338
  1552. ,   55,  114,   56,  115,   57,  116,   58, 1016,   79,   59
  1553. , 1016,   60,  231,   61,  118,   62,  119,   63,  120,  898
  1554. ,   64,  178,   68,  514,  910,  397,   35,  398,   36,  399
  1555. ,   37,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1556. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1557. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1558. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1559. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1560. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1561. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1562. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1563. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1564. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1565. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1566. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1567. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1568. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1569. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1570. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1571. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1572. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1573. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1574. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1575. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1576. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1577. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1578. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1579. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1580. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1581. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1582. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1583. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1584. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1585. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1586. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1587. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1588. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1589. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1590. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1591. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1592. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1593. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1594. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1595. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1596. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1597. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1598. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1599. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1600. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1601. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1602. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1603. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1604. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1605. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1606. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1607. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1608. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1609. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1610. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1611. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1612. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1613. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1614. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1615. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1616. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1617. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1618. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1619. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1620. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1621. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1622. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1623. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1624. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1625. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1626. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1627. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1628. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1629. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1630. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1631. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1632. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1633. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1634. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1635. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1636. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1637. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1638. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1639. ,    0,    0,    0,    0,    0,    0)  ;
  1640.         --| Actions to perform for all combinations of parser
  1641.         --| states and input tokens.
  1642.         -- NYU Reference Name: ACTION_TABLE1
  1643.  
  1644.     ActionTableTwo :
  1645.         constant array (ActionTableTwoRange)
  1646.         of GC.ParserInteger :=
  1647.          (    0,99019,165032,    0,    0,    0,    0,    0,    0,    0
  1648. ,    0,121033,    0,    0,121036,    0,    0,    0,    0,231061
  1649. ,    0,    0,121044,121045,    0,    0,82541,82542,82543,82544
  1650. ,    0,    0,82547,    0,    0,82550,    0,82552,121060,    0
  1651. ,    0,    0,    0,    0,159573,159574,    0,    0,38555,    0
  1652. ,121072,    0,27557,121075,    0,    0,33062,    0,    0,99077
  1653. ,99078,99079,99080,99081,99082,99083,297120,    0,    0,    0
  1654. ,    0,    0,    0,    0,    0,    0,    0,121099,    0,    0
  1655. ,38587,38588,38589,    0,    0,    0,    0,    0,159617,    0
  1656. ,    0,159620,    0,    0,    0,214634,    0,    0,    0,82614
  1657. ,    0,    0,214641,187137,    0,214644,    0,    0,    0,    0
  1658. ,    0,    0,    0,38620,    0,    0,    0,159646,    0,    0
  1659. ,225661,38628,    0,    0,    0,159654,    0,159656,    0,    0
  1660. ,    0,121153,121154,121155,121156,    0,121158,    0,82653,82654
  1661. ,    0,121163,121164,    0,170675,170676,    0,    0,    0,225690
  1662. ,    0,    0,    0,22157,    0,    0,    0,    0,    0,225700
  1663. ,82675,82676,82677,82678,    0,82680,82681,82682,    0,82684
  1664. ,    0,181704,82687,    0,170705,170706,    0,170708,    0,    0
  1665. ,170711,22185,    0,    0,    0,    0,    0,22191,    0,159718
  1666. ,11192,    0,11194,264241,38701,264243,264244,38704,    0,    0
  1667. ,    0,    0,    0,    0,247749,    0,    0,247752,    0,    0
  1668. ,181743,    0,159741,    0,    0,    0,    0,154245,    0,    0
  1669. ,    0,    0,    0,38730,181757,    0,170757,    0,    0,159758
  1670. ,    0,247776,    0,159762,    0,181768,159765,    0,159767,    0
  1671. ,    0,99259,159771,    0,    0,    0,    0,    0,154276,38756
  1672. ,    0,    0,    0,    0,    0,    0,    0,159786,    0,    0
  1673. ,    0,225802,159791,    0,    0,    0,    0,181800,    0,    0
  1674. ,247815,    0,11274,    0,    0,225816,225817,    0,225819,    0
  1675. ,    0,    0,225823,225824,    0,    0,    0,    0,225829,225830
  1676. ,    0,    0,    0,    0,    0,71808,    0,    0,22302,    0
  1677. ,170831,170832,170833,170834,    0,    0,264354,82822,170839,    0
  1678. ,170841,170842,    0,    0,170845,    0,    0,    0,    0,    0
  1679. ,    0,22325,22326,22327,22328,    0,    0,247872,    0,    0
  1680. ,    0,    0,    0,    0,    0,    0,71849,    0,132362,    0
  1681. ,    0,    0,231384,181876,    0,    0,    0,    0,    0,242393
  1682. ,    0,    0,    0,    0,    0,55365,154384,    0,    0,    0
  1683. ,    0,    0,154390,    0,38871,    0,82881,82882,    0,99387
  1684. ,99388,154399,154400,154401,154402,154403,154404,    0,    0,154407
  1685. ,154408,154409,154410,225924,154412,    0,    0,    0,154416,    0
  1686. ,    0,154419,    0,    0,181927,    0,    0,    0,    0,    0
  1687. ,    0,71914,    0,    0,    0,    0,    0,    0,    0,    0
  1688. ,71923,71924,71925,71926,    0,    0,    0,    0,71931,71932
  1689. ,71933,71934,    0,71936,71937,71938,    0,    0,38935,38936
  1690. ,71943,    0,38939,275483,198470,    0,    0,38944,    0,    0
  1691. ,    0,    0,    0,181976,181977,    0,181979,159976,    0,    0
  1692. ,    0,    0,    0,    0,187488,    0,99474,    0,    0,132483
  1693. ,    0,    0,115983,    0,49973,253511,    0,    0,    0,    0
  1694. ,    0,    0,    0,    0,82989,82990,    0,    0,    0,    0
  1695. ,    0,    0,    0,    0,    0,    0,83001,    0,    0,    0
  1696. ,    0,    0,    0,    0,    0,88511,    0,248042,    0,39006
  1697. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1698. ,39017,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1699. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1700. ,    0,    0,    0,    0,    0,88551,    0,39044,    0,39046
  1701. ,171071,    0,275592,39050,    0,    0,    0,    0,    0,    0
  1702. ,209588,    0,    0,    0,    0,    0,215095,    0,    0,215098
  1703. ,39067,39068,39069,39070,    0,39072,39073,    0,    0,39076
  1704. ,72083,72084,    0,    0,    0,    0,154604,    0,    0,105098
  1705. ,    0,    0,    0,    0,    0,    0,    0,99605,281139,    0
  1706. ,    0,281142,    0,220633,    0,    0,    0,    0,  598,  599
  1707. ,    0,    0,    0,    0,  604,    0,72119,    0,    0,72122
  1708. ,    0,72124,    0,    0,    0,    0,    0,231659,    0,    0
  1709. ,    0,    0,143648,    0,    0,    0,    0,    0,    0,    0
  1710. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1711. ,    0,    0,    0,    0,    0,    0,    0,187681,    0,    0
  1712. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1713. ,286712,    0,    0,    0,    0,55675,231708,    0,187702,149196
  1714. ,    0,55681,    0,72186,    0,237218,    0,    0,198714,    0
  1715. ,39187,198717,    0,176715,    0,    0,28191,    0,    0,176721
  1716. ,    0,187725,    0,    0,    0,    0,    0,  697,    0,    0
  1717. ,    0,94218,    0,    0,    0,    0,    0,    0,    0,    0
  1718. ,    0,    0,    0,    0,39221,    0,275766,72230,    0,286771
  1719. ,    0,    0,    0,    0,    0,    0,72239,72240,72241,72242
  1720. ,72243,72244,    0,    0,72247,72248,72249,72250,    0,72252
  1721. ,72253,72254,    0,    0,39251,39252,72259,    0,39255,    0
  1722. ,    0,    0,    0,39260,    0,    0,    0,    0,182291,    0
  1723. ,    0,132785,    0,160292,    0,    0,    0,    0,    0,99787
  1724. ,    0,    0,    0,281324,281325,    0,    0,    0,    0,    0
  1725. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1726. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1727. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,182342
  1728. ,    0,88827,    0,182346,    0,    0,    0,    0,    0,220859
  1729. ,    0,    0,    0,    0,182357,    0,39333,    0,    0,171360
  1730. ,    0,    0,182365,    0,    0,    0,    0,    0,    0,    0
  1731. ,    0,    0,99860,    0,    0,    0,    0,154875,    0,154877
  1732. ,99868,    0,99870,    0,39361,39362,    0,    0,    0,39366
  1733. ,    0,    0,99880,99881,    0,    0,    0,    0,    0,    0
  1734. ,    0,99889,215411,    0,    0,    0,39383,    0,    0,    0
  1735. ,154908,    0,39389,    0,    0,39392,154914,    0,    0,99907
  1736. ,    0,99909,    0,176925,    0,    0,    0,    0,    0,44907
  1737. ,    0,44909,    0,99921,    0,99923,99924,    0,    0,    0
  1738. ,    0,248456,83427,    0,    0,    0,17419,    0,    0,    0
  1739. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1740. ,    0,44939,    0,    0,    0,44943,    0,215476,99956,    0
  1741. ,    0,17444,    0,    0,83459,83460,83461,    0,    0,    0
  1742. ,154978,    0,    0,    0,    0,    0,287008,    0,    0,    0
  1743. ,    0,154989,    0,    0,    0,    0,    0,    0,    0,    0
  1744. ,    0,    0,    0,    0,83489,83490,83491,83492,    0,    0
  1745. ,83495,    0,    0,83498,    0,83500,    0,    0,    0,    0
  1746. ,155018,    0,94509,94510,    0,    0,    0,    0,    0,177031
  1747. ,28505,    0,    0,155031,155032,155033,155034,155035,155036,    0
  1748. ,39517,    0,    0,    0,    0,100033,    0,    0,155046,155047
  1749. ,155048,    0,94539,    0,    0,    0,94543,94544,    0,122051
  1750. ,67042,    0,94549,276083,122056,    0,    0,    0,    0,    0
  1751. ,    0,45049,    0,    0, 1044,12047,45054,83562,    0,    0
  1752. ,    0,    0,    0,12055,100072,12057,    0,100075,    0,100077
  1753. ,    0,100079,100080,100081,    0,    0,    0,100085,    0,    0
  1754. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1755. ,    0,12083,12084,12085,    0,83600,    0,    0,    0,12091
  1756. ,    0,    0,12094,12095,    0,12097,12098,12099,    0,    0
  1757. ,83615,    0,    0,    0,    0,210143,    0,    0,83623,    0
  1758. ,    0,    0,155140,83628,    0,    0,    0,83632,    0,    0
  1759. ,83635,    0,171653,    0,    0,    0,    0,    0,    0,    0
  1760. ,50639,    0,237675,    0,94651,94652,94653,210175,210176,210177
  1761. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1762. ,237693,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1763. ,    0,    0,    0,    0,    0,    0,    0,210205,210206,210207
  1764. ,    0,89187,254218,    0,    0,    0,210214,100195,210216,    0
  1765. ,    0,    0,    0,    0,    0,    0,    0,    0,215727,237732
  1766. ,    0,215730,    0,    0,    0,    0,    0,34203,177230,    0
  1767. ,17703,    0,72715,72716,72717,    0,    0,72720,182741,259756
  1768. ,    0,    0,199248,    0,    0,210253,    0,    0,    0,210257
  1769. ,    0,    0,    0,    0,    0,    0,    0,94744,94745,    0
  1770. ,    0,94748,72745,72746,72747,72748,    0,    0,72751,    0
  1771. ,210278,72754,    0,72756,    0,    0,    0,    0,276298,    0
  1772. ,    0,210289,    0,215792,    0,    0,    0,    0,    0,    0
  1773. ,    0,94778,    0,61774,    0,    0,276316,    0,276318,    0
  1774. ,    0,171802,94789,94790,94791,    0,    0,    0,210316,210317
  1775. ,210318,    0,    0,111303,    0,    0,    0,    0,    0,111309
  1776. ,    0, 1291,111312,    0,210332,    0,210334,210335,210336,    0
  1777. ,    0,210339,210340,    0,210342,72818,    0,    0,210346,    0
  1778. ,210348,204848,39819,210351,94831,    0,72829,    0, 1318,    0
  1779. ,    0,    0,    0,    0,    0,    0,    0, 1327,    0,    0
  1780. ,    0,    0,    0,237876,    0,    0,    0,    0,    0,    0
  1781. ,    0,122363,    0,72856,    0,    0,39853,    0,276398,    0
  1782. ,    0,    0,    0,    0,72867,    0,210394,    0,72871,72872
  1783. ,    0,72874,72875,72876,    0,    0,72879,72880,72881,72882
  1784. ,    0,72884,72885,72886,    0,    0,    0,    0,    0,    0
  1785. ,39887,    0,226923,    0,226925,39892,    0,    0,    0,    0
  1786. ,    0,    0,    0,    0,    0,    0,    0,    0,133422,133423
  1787. ,    0,    0,116923,    0,    0,133429,105925,105926,    0,105928
  1788. ,    0,23415,    0,226954,226955,    0,133440,105936,    0,    0
  1789. ,    0,226962,    0,226964,    0,    0,39933,    0,    0,    0
  1790. ,    0,23435,259979,    0,116955,116956,    0,    0,    0,    0
  1791. ,    0,259988,89458,    0,    0,    0,    0,    0,182981,    0
  1792. ,67462,23455,56462,    0,    0,    0,    0,    0,39965,    0
  1793. ,67472,    0,    0,    0,116985,116986,116987,116988,    0,    0
  1794. ,116991,    0,    0,116994,194009,116996,    0,    0,183011,105998
  1795. ,    0,260028,260029,260030,260031,    0,    0,39994,128011,    0
  1796. ,106009,39998,    0,    0,    0,    0,    0,40004,    0,    0
  1797. ,40007,40008,    0,40010,40011,40012,    0,    0,40015,40016
  1798. ,40017,40018,    0,40020,    0,40022,    0,    0,    0,    0
  1799. ,    0,    0,    0,    0,227065,227066,    0,    0,    0,227070
  1800. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1801. ,106059,106060,106061,106062,    0,106064,    0,    0,    0,    0
  1802. ,    0,    0,    0,227094,    0,227096,    0,73070,    0,73072
  1803. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,111589
  1804. ,    0,    0,    0,    0,    0,117096,117097,117098,    0,    0
  1805. ,287632,117102,    0,    0,    0,    0,    0,    0,287640,    0
  1806. ,117111,117112,117113,117114,    0,    0,    0,    0,117119,117120
  1807. ,117121,117122,    0,117124,117125,117126,117127,117128,    0,    0
  1808. ,117131,183144,    0,183146,    0,    0,    0,    0,    0,    0
  1809. ,    0,    0,    0,    0,    0,    0,    0,243671,243672,243673
  1810. ,    0,40138,73145,    0,    0,    0,    0,    0,    0,    0
  1811. ,177672,    0,    0,    0,243688,    0,    0,    0,    0,    0
  1812. ,    0,    0,    0,    0,    0,    0,    0,243701,243702,    0
  1813. ,    0,73174,    0,243707,95181,73178,243710,150194,243712,    0
  1814. ,    0,    0,    0,    0,122696,    0,    0,    0,    0,    0
  1815. ,    0,    0,73195,73196,73197,73198,    0,73200,73201,73202
  1816. ,    0,73204,    0,    0,    0,    0,    0,    0,    0,117220
  1817. ,122722,117222,    0,117224,    0,    0,    0,    0,    0,    0
  1818. ,    0,    0,    0,    0,51223,254761,    0,    0,    0,    0
  1819. ,122742,    0,106241,106242,106243,106244,    0,    0,106247,    0
  1820. ,243774,106250,    0,106252,    0,    0,260283,    0,    0,260286
  1821. ,    0,243785,243786,    0,243788,    0,    0,    0,    0,    0
  1822. ,    0,    0,    0,    0,    0,23759,    0,    0,    0,23763
  1823. ,    0,23765,    0,    0,    0,    0,    0,293320,243812,    0
  1824. ,243814,    0,    0,    0,    0,293328,    0,144803,    0,    0
  1825. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,254835
  1826. ,    0,    0,243836,    0,243838,106314,243840,243841,243842,243843
  1827. ,    0,238344,    0,243847,40311,    0,106325,    0,    0,23813
  1828. ,    0,    0,    0,276863,    0,    0,    0,    0,    0,    0
  1829. ,    0,    0,    0,    0,    0,155853,    0,67839,    0,    0
  1830. ,67842,    0,    0,106352,106353,106354,276886,276887,    0,106358
  1831. ,    0,    0,    0,276893,    0,    0,    0,    0,106367,106368
  1832. ,106369,106370,106371,    0,    0,    0,106375,106376,106377,    0
  1833. ,89876,    0,    0,106382,106383,106384,    0,    0,106387,    0
  1834. ,    0,    0,    0,    0,    0,    0,    0,194412,    0,177911
  1835. ,194415,    0,    0,    0,    0,    0,144912,    0,    0,18392
  1836. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1837. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,111929
  1838. ,205447,177943,177944,177945,    0,    0,    0,    0,    0,188953
  1839. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1840. ,    0,    0,    0,205470,205471,    0,    0,    0,    0,    0
  1841. ,205477,    0,    0,177975,177976,    0,95463,177979,    0,    0
  1842. ,177982,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1843. ,271509,    0,    0,161492,161493,    0,    0,    0,    0,    0
  1844. ,    0,255017,    0,    0,255020,    0,111996,211015,111998,    0
  1845. ,    0,    0,    0,255029,    0,    0,    0,    0,227529,    0
  1846. ,    0,    0,    0,    0,161523,    0,    0,    0,    0,    0
  1847. ,    0,255047,    0,    0,    0,    0,    0,    0,    0,    0
  1848. ,255056,    0,    0,255059,    0,    0,    0,    0,161547,    0
  1849. ,    0,    0,    0,    0,    0,178057,    0,    0,    0,    0
  1850. ,    0,    0,    0,    0,51543,    0,    0,255083,    0,    0
  1851. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,227590
  1852. ,227591,    0,    0,178085,178086,    0,227597,    0,    0,    0
  1853. ,    0,    0,    0,    0,    0,    0,183599,178099,178100,178101
  1854. ,178102,    0,178104,    0,    0,178107,178108,    0,178110,    0
  1855. ,    0,178113,    0,    0,    0,172616,    0,178119,    0,161618
  1856. ,    0,    0,255138,255139,255140,255141,    0,255143,183631,183632
  1857. ,183633,255147,255148,255149,    0,    0,    0,62618,255154,    0
  1858. ,255156,255157,    0,    0, 7615,    0,    0,    0,178150,    0
  1859. ,    0,    0,    0,    0,194659,    0,    0,    0,183661,183662
  1860. ,183663,183664,    0,    0,183667,    0,    0,    0,    0,183672
  1861. ,    0,    0,271691,    0,    0,    0,    0,    0,18651,    0
  1862. ,35156,    0,    0,    0,    0,    0,194691,    0,194693,266207
  1863. ,    0,    0,    0, 7664,    0,    0,    0,    0,260715,128692
  1864. ,    0,    0,29677,    0,    0,    0,    0,    0,    0,    0
  1865. ,    0,    0,    0,222223,    0,    0,194721,194722,194723,194724
  1866. ,    0,    0,194727,    0,    0,194730,260743,194732,    0,73712
  1867. ,73713,183734,    0,    0,    0,    0,    0,    0,    0,    0
  1868. ,260757,    0,183745,    0,260761,    0,    0,    0,    0,    0
  1869. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1870. ,156258,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1871. ,    0,183774,29747,    0,    0,    0,    0,    0,    0,    0
  1872. ,    0,    0,238795,260800,    0,    0,183789,    0,183791,    0
  1873. ,40767,    0,    0,183796,183797,183798, 2266,183800,183801,183802
  1874. ,    0,183804,    0,13275,183807,    0,    0,    0,    0,    0
  1875. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1876. ,    0,    0,40799,40800,40801,    0,271845,194832,194833,    0
  1877. ,    0,    0,95819,194838,    0,13307,    0,13309,    0,    0
  1878. ,13312,95828,194847,194848,194849,    0,194851,194852, 2318, 2319
  1879. ,194855,    0,    0,    0,40831,    0,    0,194862,    0,194864
  1880. ,205867,40838,194867,    0,    0,13337,13338,13339,13340,    0
  1881. ,    0,13343,    0,    0,13346,    0,13348,    0,    0,    0
  1882. ,117871,    0,    0,    0,    0,    0,238899,    0,    0,24363
  1883. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1884. ,    0,    0,    0,    0,40881,    0,    0,    0,    0,    0
  1885. ,    0,    0,    0,117904,    0, 2385,    0,13389,    0,    0
  1886. ,238933,    0,    0,    0,    0,40902,    0,    0,    0,156427
  1887. ,    0,    0,    0,    0,    0,    0,40913,    0,13410,    0
  1888. ,    0,    0,117933,117934,    0,117936,    0,161946,    0,    0
  1889. ,    0,    0,    0,117944,238967,    0,156454,238970,    0,    0
  1890. ,260977,    0,260979,40940,40941,40942,    0,    0,    0,40946
  1891. ,    0,156469,    0,    0,    0,    0,    0,    0,    0,    0
  1892. ,40957,    0,    0,    0,    0,13457,    0,    0,40965,40966
  1893. ,    0,    0,    0,    0,    0,    0,    0,156495,    0,    0
  1894. ,    0,13473,    0,    0,    0,    0,    0,    0,    0,    0
  1895. ,46488,    0,    0,    0,    0,    0,    0,250032,    0,294042
  1896. ,    0,239034,    0,    0,    0,    0,    0,173028,    0,    0
  1897. ,    0,    0,239045,    0,    0,    0, 2506, 2507,    0,46517
  1898. ,46518,46519,46520,    0,    0,46523,    0,195052,    0,    0
  1899. ,    0,    0,    0,118044,118045,118046,    0,    0,162057,    0
  1900. ,239073,239074,    0,    0,    0,    0,118057,    0,118059,118060
  1901. ,118061,118062,118063,118064,239087,239088,    0,    0,    0,    0
  1902. ,    0,118072,    0,    0,    0,    0,112576,239100,    0,239102
  1903. ,    0,239104,    0,    0,239107,    0,    0,    0,    0,    0
  1904. ,    0,    0,217111,    0,90590,30080,    0,    0,    0,    0
  1905. ,    0,129104,129105,129106,    0,178617,    0,250132,    0,250134
  1906. ,    0, 2591,217131,    0,134618,239138,134620,    0,    0,    0
  1907. ,    0,    0,134626,    0,134628,    0,    0,134631,    0,    0
  1908. ,250155,250156,250157,250158,    0,250160,    0,    0,250163,250164
  1909. ,    0,    0,    0,    0,96141,134649,46634,    0,    0,134653
  1910. ,    0,    0,228173,    0,    0,    0,    0,    0,134662,    0
  1911. ,173171,    0,    0,134667,    0,134669,46654,    0,    0,    0
  1912. ,46658,46659,46660,    0,134678,    0,    0,134681,    0,    0
  1913. ,134684,    0,    0,    0,294217,    0,    0,    0,    0,    0
  1914. ,    0,288723,173203,173204,    0,    0,228217,    0,228219,    0
  1915. ,    0,    0,    0,    0,    0,211723,    0,    0,    0,272238
  1916. ,    0,    0,    0,    0,    0,    0,    0,184230,    0,184232
  1917. ,    0,    0,173233,    0,    0,    0,    0,184240,    0,184242
  1918. ,184243,173242,    0,173244,184247,    0,184249,211755,    0,    0
  1919. ,184253,    0,    0,184256,184257,    0,    0,    0,184261,    0
  1920. ,    0,    0,    0,    0,184267,    0,173267,    0,156766,    0
  1921. ,    0,    0,156770,    0,156772,    0,184279,    0,    0,211787
  1922. ,    0,    0,    0,211791,173285,    0,    0,    0,211796,    0
  1923. ,    0,    0,184295,184296,    0,    0,    0,    0,134792,134793
  1924. ,    0,    0,156800,    0,    0,173306,    0,156805,156806,156807
  1925. ,156808,156809,    0,    0,    0,156813,    0,    0,228329,    0
  1926. ,156818,156819,    0,156821,217333,156823,    0,    0,156826,    0
  1927. ,112820,    0,294355,    0,140329,    0,    0,    0,    0,112829
  1928. ,96327,134835,    0,    0,    0,    0,134840,134841,    0,    0
  1929. ,    0,    0,134846,    0,    0,    0,    0,    0,    0,    0
  1930. ,    0,    0,173363,    0,    0,    0,    0,173368,    0,    0
  1931. ,85355,    0,    0,173374,    0,173376,    0,19350,173379,19352
  1932. ,    0,    0,288904,    0,    0,    0,    0,    0,211896,211897
  1933. ,211898,    0,    0,    0,    0,134889,123888,123889,    0, 8370
  1934. ,85385,    0,    0,    0,211912,211913,    0,211915,    0,85394
  1935. ,    0,    0,211920,211921,211922,74398,    0,    0,211926,211927
  1936. ,211928,    0,41399,211931,    0,    0,74409,123919,    0,    0
  1937. ,123922,178933,    0,    0,    0,    0,    0,    0,    0,    0
  1938. ,    0,184444,    0,    0,184447,184448,184449,    0,184451,184452
  1939. ,    0,    0,    0,    0,    0,    0,    0,184460,    0,    0
  1940. ,184463,    0,    0,184466,74447,    0,    0,112957,74451,74452
  1941. ,74453,    0,74455,    0,    0,206482,74459,    0,    0,    0
  1942. ,255996,    0,    0,74466,    0,    0,    0,    0,    0,    0
  1943. ,41467,107480,    0,41470,    0,41472,184499,184500,184501,145995
  1944. ,    0,    0,    0,    0,    0,    0,    0,96494,    0,    0
  1945. ,256026,    0,    0,    0,    0,    0,    0,    0,    0,107508
  1946. ,256036,    0,    0,    0,124016,    0,85511,    0,    0,    0
  1947. ,    0,146027,146028,146029,85519,85520,85521,85522,    0,85524
  1948. ,85525,85526,    0,85528,    0,    0,85531,    0,91034,    0
  1949. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1950. ,    0,146057,146058,146059,    0,    0,    0,    0,41545,    0
  1951. ,    0,    0,146068,    0,267092,    0,    0,    0,91064,    0
  1952. ,118571,    0,256098,    0,    0,    0,    0,    0,    0,107578
  1953. ,    0,    0,    0,256109,256110,41572,    0,41574,    0,    0
  1954. ,107589,41578,129595,129596,129597,    0,    0,96594,    0,    0
  1955. ,41587,    0,107601,146109,    0,    0,    0,272636,41595,41596
  1956. ,    0,    0,256138,    0,41601,    0,    0,    0,107617,107618
  1957. ,41607,278151,129625,    0,    0,    0,107625,    0,    0,140634
  1958. ,    0,129634,    0,    0,256160,    0,256162,    0,256164,256165
  1959. ,    0,    0,    0,    0,85639,    0,    0,    0,107647,107648
  1960. ,    0,    0,107651,223173,    0,    0,261683,261684,    0,    0
  1961. ,    0,    0,146168,146169,146170,    0,    0,    0,146174,    0
  1962. ,102168,    0,    0,    0,129677,    0,85671,    0,    0,146185
  1963. ,146186,    0,    0,91179,162693,    0,    0,    0,    0,261716
  1964. ,146196,146197,    0,    0,    0,    0,    0,    0,    0,    0
  1965. ,    0,    0,    0,    0,    0, 8686,    0,85702,85703,85704
  1966. ,    0,223231,85707,    0, 8695,    0,    0,85712,    0,    0
  1967. ,    0,190235,    0,    0,    0,    0,    0,206744,41715,    0
  1968. ,    0,    0,    0,129736,    0,129738,    0,    0,30723,129742
  1969. ,    0,113241,96739,    0,41731,    0,    0,    0,129751,129752
  1970. ,129753,    0,    0,    0,    0,    0,    0,    0,129761,    0
  1971. ,41747,    0,    0,    0,129767,    0,    0,162776,    0,    0
  1972. ,261797,261798,    0,261800,91270,    0,    0,    0,    0,    0
  1973. ,    0,    0,    0,    0,190298,    0,    0,    0,146294,    0
  1974. ,    0,41778,    0,    0,190308,    0,    0,    0,    0,    0
  1975. ,    0,    0,162811,261830,    0,162814,    0,162816,    0,    0
  1976. ,14292,    0,    0,    0,    0,    0,    0,85812,85813,85814
  1977. ,    0,    0,261849,    0,    0,261852,261853,    0,261855,261856
  1978. ,    0,    0,    0,    0,228855,    0,    0,    0,    0,    0
  1979. ,85835,85836,85837,85838,    0,85840,85841,85842,85843,85844
  1980. ,    0,    0,85847,    0,    0,    0,    0,    0,    0,    0
  1981. ,    0,    0,118863,41850,    0,    0,    0,190381,190382,162878
  1982. ,190384,    0,    0,    0,41861,    0,129879,    0,    0,    0
  1983. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  1984. ,    0,    0,    0,    0,    0,190409,190410,272926,    0,91395
  1985. ,190414,41888,41889,41890,    0,91401,    0,    0,    0,    0
  1986. ,129913,    0,    0,162922,    0,    0,41903,190431,190432,190433
  1987. ,190434,    0,190436,190437,    0,    0,    0,41914,    0,    0
  1988. ,    0,    0,    0,    0,    0,162944,    0,162946,    0,    0
  1989. ,129943,129944,162951,    0,    0,    0,278476,    0,195963,    0
  1990. ,25434,    0,    0,    0,    0,    0,    0,    0,102456,25443
  1991. ,25444,    0,    0,    0,    0,168475,    0,    0,    0,    0
  1992. ,    0,    0,    0,    0,74967,    0,    0,    0,47466,47467
  1993. ,47468,    0,    0,47471,    0,    0,    0,    0,    0,    0
  1994. ,    0,    0,    0,    0,    0,118996,    0,    0,    0, 3479
  1995. ,    0,    0,    0,    0,    0,196020,    0,    0,    0,113509
  1996. ,    0,    0,113512,    0,    0,    0,    0,    0,    0,    0
  1997. ,    0,    0,130025,    0,    0,    0,    0,    0,    0,    0
  1998. ,    0,    0,    0,    0,    0,    0,240059,    0,113538,    0
  1999. ,    0,    0,    0,207060,42031,    0,25530,    0,    0,130052
  2000. ,    0,130054,    0,168563,    0,130058,    0,    0,    0,69551
  2001. ,    0,    0, 3542,    0, 3544,    0,    0, 3547,152075,    0
  2002. , 3550,    0,    0,130076,130077,    0,    0,    0,    0,130082
  2003. ,130083,130084,163091,    0,    0,245609,    0,    0,47576,47577
  2004. ,47578,    0,    0,113593,47582, 3575,    0,    0,    0,    0
  2005. ,    0,218120,    0,    0,    0,    0,42093,42094,    0,    0
  2006. ,108109,    0,    0,    0,    0,    0,    0,42104,    0,47607
  2007. ,    0,    0,113622,163132,    0,    0,251151,    0,    0,    0
  2008. ,    0,    0,    0,284164,    0,    0,    0,256663,108137,108138
  2009. ,108139,108140,    0,    0,    0, 3625,    0,108146,295181,108148
  2010. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2011. ,    0,157669,    0,    0,53153,    0,    0,119168,119169,212687
  2012. ,212688,    0, 3652, 3653, 3654,    0,    0,    0, 3658,42166
  2013. ,    0,    0,    0,    0, 3664,    0,    0, 3667, 3668, 3669
  2014. ,    0, 3671, 3672,    0,    0, 3675,    0,    0,    0,119200
  2015. , 3680, 3681,    0, 3683, 3684,119206,    0,    0,    0,    0
  2016. ,    0,108210,    0,    0,    0,    0,179728,42204,42205,42206
  2017. ,    0,    0,    0,    0,163233,163234,    0,    0,    0,163238
  2018. ,251255,251256,    0,    0,    0,    0,    0,    0,    0,    0
  2019. ,42227,42228,    0,42230,    0,42232,    0,    0,    0,    0
  2020. ,    0,    0,    0,163262,    0,    0,    0,    0,163267,    0
  2021. ,251285,251286,251287,251288,295297,295298,251291,    0,    0,    0
  2022. ,    0,251296,108271,108272,108273,108274,    0,108276,108277,108278
  2023. ,    0,    0,    0,    0,108283,    0,196301,    0,196303,196304
  2024. ,    0,    0,    0,    0,    0,    0,223816,    0,47786,47787
  2025. ,    0,    0,    0,    0,    0,47793,    0,119308,    0,119310
  2026. ,    0,    0,    0,119314,    0,    0,    0,    0,262345,    0
  2027. ,    0,    0,    0,223843,    0,    0,229347,    0,20311,    0
  2028. ,119331,119332,119333,    0,    0,119336,119337,119338,119339,119340
  2029. ,    0,    0,119343,    0,251369,251370,    0,251372,    0,124851
  2030. ,179862,    0,    0,    0,    0,    0,    0,    0,53347,207376
  2031. ,42347,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2032. ,196385,251396,251397,251398,    0,    0,31361,    0,    0,    0
  2033. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2034. ,    0,212909,    0,42380,    0,251420,    0,    0,    0,    0
  2035. ,    0,251426,251427,    0,    0,    0,    0,163416,    0,    0
  2036. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,69911
  2037. ,    0,    0,42409,42410,    0,    0,108425,    0,42415,152436
  2038. ,    0,42418,    0,42420,    0,    0,    0,    0,    0,    0
  2039. ,    0,    0,    0,    0,20427,    0,    0,    0,    0,251474
  2040. ,    0,    0,14934,14935,    0,    0,    0,    0,    0,14941
  2041. ,    0,14943,256988,    0,    0,    0,    0,240490,240491,    0
  2042. ,    0,267999,240495,    0,240497,    0,    0,240500,240501,    0
  2043. ,    0,240504,240505,    0,64475,    0,240509,    0,    0,36975
  2044. ,240513,    0,240515,    0,    0,42482,240519,    0,    0,240522
  2045. ,262527,    0,    0,    0,240527,    0,    0,97504,    0,97506
  2046. ,    0,295544,    0,    0,    0,240538,    0,    0,240541,    0
  2047. ,240543,    0,    0,37009,    0,    0,    0,108526,    0,    0
  2048. ,    0,    0,196547,42520,42521,42522,    0,    0,    0,42526
  2049. ,    0,    0,    0,    0,185557,240568,    0,    0,42535,    0
  2050. ,    0,37037,    0,    0,37040,224075,42543,    0,42545,42546
  2051. ,37046,42548,    0,    0,42551,    0,108565,    0,    0,    0
  2052. ,130573,108570,    0,    0,    0,    0,    0,158085,    0,    0
  2053. ,    0,    0,    0,    0,    0,    0,279116,    0,108587,108588
  2054. ,108589,    0,    0,108592,108593,108594,108595,108596,    0,    0
  2055. ,108599,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2056. ,    0,    0,    0,279143,    0,    0,246140,    0,    0,    0
  2057. ,    0,    0,    0,    0,37110,    0,    0,    0,    0,240652
  2058. ,240653,240654,    0,    0,    0,37121,    0,    0,    0,    0
  2059. ,    0,114141,    0,    0,    0,125147,    0,    0,273677,    0
  2060. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2061. ,    0,119662,37148,37149,37150,    0,    0,    0,37154,240692
  2062. ,    0,    0,    0,240696,    0,    0,    0,240700,240701,240702
  2063. ,240703,    0,240705,    0,    0,    0,    0,    0,    0,240712
  2064. ,    0,    0,37178,    0,37180, 4175,    0,37183,    0,    0
  2065. ,31685,    0,    0,    0,    0,240728,    0,    0,42695,42696
  2066. ,42697,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2067. ,    0,    0,    0,    0,240747,240748,240749,    0,    0,    0
  2068. ,    0,    0,    0,15215,    0,    0,    0,    0,42725,42726
  2069. ,42727,42728,    0,    0,    0,    0,    0,42734,    0,42736
  2070. ,    0,    0,    0,    0,229775,295788,15238,15239,    0,    0
  2071. ,    0,    0,    0,15245,    0,    0,    0,    0,    0,    0
  2072. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2073. ,    0,    0,    0,    0,    0,    0,    0,26271,    0,    0
  2074. ,    0,    0,    0,163802,    0,    0,    0,    0,    0,    0
  2075. ,64791,147307,    0,    0,    0,    0,    0,    0,    0,    0
  2076. ,    0,    0,    0,163822,70306,    0,    0,    0,    0,    0
  2077. ,    0,    0,42809,    0,130827,    0,    0,    0,119829,    0
  2078. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2079. ,    0, 9822,    0,    0,26328,    0,196861,    0,64839,42836
  2080. ,42837,42838,    0,    0,64845,42842,    0,    0,130861,    0
  2081. , 9841,    0,    0,    0,42851,    0,    0,    0,    0,    0
  2082. ,268398,    0,42859,42860,42861,    0,    0,42864,42865,42866
  2083. ,42867,42868,    0,    0,    0,    0,130889,130890,    0,130892
  2084. ,268418,    0,130895,163902,279424,130898,    0,130900,    0,    0
  2085. ,    0,    0,    0,    0,    0,224425,    0,290439,    0,290441
  2086. ,20893,    0,290444,    0,    0,    0,    0,    0,    0,    0
  2087. ,    0,    0,    0,    0,    0,    0,    0,    0,196943,    0
  2088. ,    0,169441,    0,114433,    0,    0,    0,290469,    0,    0
  2089. ,    0,20924,    0,290475,20927,    0,290478,    0,290480,    0
  2090. ,    0,    0,    0,224473,    0,    0,    0,    0,273987,130962
  2091. ,    0,    0,    0,    0,    0,235487,235488,    0,    0,    0
  2092. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,70471
  2093. ,    0,    0,    0,    0,    0,    0,274015,    0,    0,    0
  2094. ,219009,    0,42979,    0,    0,    0,    0,131000,131001,131002
  2095. ,    0,    0,    0,131006,    0,    0,    0,153014,153015,    0
  2096. ,    0,70503,    0,    0,    0,131018,    0,    0,    0,    0
  2097. ,131023,    0,    0,131026,43011,    0,    0,131030,    0,131032
  2098. ,    0,    0,131035,290565,    0,    0,246560,    0,    0,    0
  2099. ,    0,70533,70534,    0,70536,    0,    0,    0,290580,    0
  2100. ,    0,    0,70544,    0,    0,    0,43043,43044,    0,    0
  2101. ,    0,    0,    0,    0,    0,43052,    0,    0,10049,    0
  2102. ,    0,290603,290604,290605,    0,    0,    0,290609,290610,    0
  2103. ,    0,    0,257608,290615,268612,    0,26570,26571,257614,    0
  2104. ,257616,    0,    0,    0,    0,    0,109095,    0,    0,    0
  2105. ,    0,    0,26586,    0,26588,26589,    0,175118,    0,    0
  2106. ,    0,    0,54101,    0,    0,    0,26600,    0,    0,    0
  2107. ,26604,    0,    0,    0,    0,    0,    0,43114,    0,    0
  2108. ,    0,147637,    0,268661,    0,    0,    0,268665,43125,    0
  2109. ,    0,    0,    0,    0,120145,    0,186159,186160,186161,    0
  2110. ,    0,    0,    0,70645,70646,    0,    0,    0,70650,    0
  2111. ,    0,26645,26646,    0,    0,    0,    0,    0,    0,    0
  2112. ,    0,    0,    0,26657,    0,    0,    0,    0,    0,    0
  2113. ,    0,    0,    0,70675,70676,186198,252211,    0,43175,43176
  2114. ,    0,    0,257718,    0,43181,43182,    0,43184,    0,    0
  2115. ,43187,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2116. ,    0,    0,    0,    0,257740,257741,257742,131220,257744,257745
  2117. ,257746,    0,257748,    0,81718,257751,    0,26711,    0,26713
  2118. ,    0,224751,    0,    0,    0,    0,    0,    0,    0,    0
  2119. , 4720,    0,    0,252268,    0,    0,    0,    0,    0,    0
  2120. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,65250
  2121. ,186273,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2122. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2123. ,    0,    0,    0,    0,    0,263312,263313,186300,    0,186302
  2124. ,    0,    0,    0,    0,54283,    0,114796,    0,    0,    0
  2125. ,    0,    0,186315,186316,186317,186318,186319,186320,    0,    0
  2126. ,186323,186324,186325,    0,    0,186328,186329,    0,186331,186332
  2127. ,    0,26805,186335,114823,26808, 4805,    0,    0,    0,    0
  2128. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,274368
  2129. ,    0,    0,    0,    0,    0,    0,    0,246871,164357,    0
  2130. ,    0,    0,    0,186366,26838,26839,    0,    0,    0,    0
  2131. ,    0,    0,    0,    0,    0,26849,26850,26851,26852,    0
  2132. ,191884,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2133. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2134. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2135. ,    0,26885,26886,26887,    0,    0,    0,    0,    0,    0
  2136. ,    0,285442,    0,    0,    0,    0,    0,    0,26902,    0
  2137. ,241443,26905,    0,175434,    0,    0,120427,    0,54417,    0
  2138. ,54419,    0,26916,    0,    0,26919,26920,    0,142443,    0
  2139. ,241463,26925,    0,158951,    0,    0,142451,147953,    0,    0
  2140. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2141. ,186473,    0,    0,    0,164473,164474,    0,    0,    0,    0
  2142. ,    0,    0,    0,    0,70966,158983,158984,    0,26962,26963
  2143. ,26964,26965,26966,26967,26968,26969,26970,26971,    0,26973
  2144. ,    0,    0,    0,    0,214012,26979,    0,    0,70990,    0
  2145. ,    0,170011,252527,    0,    0,159013,159014,159015,159016,    0
  2146. ,    0,159019,54501,    0,    0,    0,    0,    0,131521,    0
  2147. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2148. ,    0,    0,    0,    0,170044,170045,    0,236059,    0,54528
  2149. ,54529,    0,    0,27027,27028,27029,    0,27031,27032,27033
  2150. ,27034,27035,    0,    0,    0,    0,    0,49045,    0,252584
  2151. ,236082,    0,    0,170073,    0,170075,    0,    0,    0,    0
  2152. ,    0,    0,170082,    0,170084,258101,    0,236099,159086,236101
  2153. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,159097
  2154. ,    0,247115,    0,    0,236116,115095,148102,    0,    0,236121
  2155. ,236122,    0,236124,236125,    0,236127,236128,236129,236130,236131
  2156. ,    0,236133,236134,    0,    0,    0,    0,    0,159126,236141
  2157. ,    0,236143,159130,    0,    0,247149,49114,    0,    0,27113
  2158. ,    0,    0,    0,    0,    0,32620,    0,27121,    0,159147
  2159. ,    0,    0,159150,27127,159152,159153,159154,    0,    0,    0
  2160. ,    0,159159,    0,247177,247178,247179,247180,    0,    0,247183
  2161. ,    0,    0,247186,    0,    0,    0,    0,131670,    0,    0
  2162. ,27154,27155,    0,71165,170184,170185,170186,    0,    0,    0
  2163. ,170190,27165,    0,27167,27168,    0,    0,    0,    0,    0
  2164. ,    0,    0,164701,    0,    0,    0,    0,170207,170208,170209
  2165. ,170210,    0,    0,170213,170214,170215,    0,230728,    0,170219
  2166. ,    0,    0,    0,27197,    0,    0,    0,    0,    0,    0
  2167. ,    0,    0,    0,    0,    0,    0,247250,    0,    0,    0
  2168. ,    0,82225,    0,214251,    0,    0,    0,247261,    0,    0
  2169. ,    0,    0,    0,    0,54733,    0,    0,    0,    0,    0
  2170. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2171. ,    0,    0,10743,    0,247288,    0,    0,214285,164777,148275
  2172. ,247294,    0,131775,    0,    0,    0,    0,    0,    0,    0
  2173. ,    0,    0,    0,    0,93280,175796,    0,247311,247312,247313
  2174. ,247314,    0,247316,247317,247318,    0,    0,214315,214316,247323
  2175. ,    0,214319,    0,    0,    0,131808,    0,    0,    0,    0
  2176. ,    0,    0,    0,    0,    0,    0,219835,    0,    0,219838
  2177. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2178. ,    0,    0,    0,    0,131837,131838,131839,131840,    0,    0
  2179. ,131843,    0,    0,131846,296877,    0,148352,214365,    0,131852
  2180. ,    0,    0,170362,    0,    0,82349,    0,    0,    0,    0
  2181. ,    0,    0,    0,    0,    0,120866,    0,    0,    0,    0
  2182. ,    0,263898,    0,49361,    0,    0,    0,    0,    0,214397
  2183. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2184. ,    0,    0,    0,    0,    0,    0,    0,186910,    0,    0
  2185. ,    0,    0,    0,    0,    0,    0,    0,    0,214426,32894
  2186. ,159418,    0,    0,    0,    0,32900,    0,    0,    0,    0
  2187. ,115420,    0,214440,214441,214442,214443,214444,    0,    0,214447
  2188. ,214448,    0,    0,    0,214452,214453,214454,    0,    0,    0
  2189. ,    0,    0,    0,32928,    0,    0,131949,131950,    0,    0
  2190. ,    0,    0,181464,98950,32939,    0,98953,    0,    0,    0
  2191. ,    0,    0,    0,    0,    0,    0,    0,98964,    0,    0
  2192. ,    0,    0,214490,131976,131977,131978,    0,131980,    0,    0
  2193. ,131983,    0,220001,    0,    0,82479,    0,231008,    0,71481
  2194. ,    0,    0,    0,187006,    0,192509,    0,    0,    0,    0
  2195. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2196. ,    0,    0,    0,    0,286045,    0,    0,    0,    0,    0
  2197. ,99017,286093,192576,121063,49550,269592,192578,159583,121076,99073
  2198. ,33061,231109,33073,225627,159615,159616,148614,93606,88105,93607
  2199. ,88106,214635,93613,231152,82625,38617,231153,38618,170643,38619
  2200. ,159645,38623,225659,159647,225660,159648,38626,22123,159651,121144
  2201. ,192658,11125,121150,55138,253181,121157,280688,121159,82652,55147
  2202. ,220183,121165,99161,82658,170677,115667,225689,121170,225691,121172
  2203. ,99168,225692,121173,99169,22155,99170,82667,22156,225695,99172
  2204. ,225698,99175,159697,82683,49677,170707,77190,286234,181715,22186
  2205. ,170714,154211,38690,22187,99202,22188,170716,99203,225741,159729
  2206. ,247760,154243,247761,154244,225762,38728,33227,71735,38729,242271
  2207. ,159756,38734,181761,159757,225773,181765,159761,209272,181767,159763
  2208. ,27739,247788,159772,159773,38751,33250,159774,154273,38752,33251
  2209. ,247791,159775,154274,38753,170778,159776,154275,38754,159779,38757
  2210. ,275301,159780,154279,38758,33257,159781,38759,159782,38760,154282
  2211. ,71767,159784,71768,159785,154284,71769,38763,170789,159787,225800
  2212. ,159788,225801,99278,225806,22269,264322,225815,264325,225818,225820
  2213. ,132303,225825,71797,225826,187319,170816,71798,242330,170817,71799
  2214. ,225828,170818,71800,225831,71803,225832,170822,220332,22296,71806
  2215. ,22297,225835,22298,192832,154325,264352,170835,264353,192840,170836
  2216. ,170840,33315,170844,82828,258862,247860,170846,181849,170847,22320
  2217. ,170848,22321,154346,22322,170851,22324,16823,247874,154357,247889
  2218. ,181877,231387,181878,154385,71870,154386,82873,82874,  359,99378
  2219. ,82875,82883,71881,225926,154413,225927,154414,225928,154415,121409
  2220. ,269944,93912,71908,236939,71909,38903,187431,71910,38904,181931
  2221. ,38905,181936,148930,88419,71927,  414,187449,71928,71939,38933
  2222. ,71940,38934,121457,38942,181978,121467,49954,171044,143539,72051
  2223. ,39045,275617,39074,220608,39075,72085,39079,72113,  600,72114
  2224. ,  601,259149,72115,286655,72116,286673,215160,72165,33658,237215
  2225. ,50181,176714,94199,72197,28189,270260,72224,72225,39219,72226
  2226. ,39220,220782,72255,39249,72256,39250,39258,17254,275843,198829
  2227. ,154843,39322,264888,143866,99858,154876,99866,99871,50362,39360
  2228. ,253902,171387,209899,182394,209904,99884,99885,44875,215414,99893
  2229. ,28380,154905,39384,154906,39385,33884,154907,39386,99899,39388
  2230. ,154911,39390,99902,39391,17387,154916,39395,99918,44908,154957
  2231. ,44937,99948,44938,259479,44940,100005,55997,155016,94505,259536
  2232. ,155017,155022,94511,94526,39516,155039,67023,155040,94529,155041
  2233. ,45021,12015,155042,100032,155044,100034,281568,155045,155051,94540
  2234. ,276086,12038,45048,39547,12042,45050,12044,100076,83573,39565
  2235. ,100078,67072,100082,45072,39571,199101,100083,45073,100084,45074
  2236. ,100086,94585,45076,199105,100087,94586,45077,100088,94587,45078
  2237. ,12072,100089,94588,45079,100090,94589,45080,100091,94590,100092
  2238. ,94591,100093,94592,12077,160605,100094,94593,12078,94594,12079
  2239. ,94595,12080,160608,94596,89095,12081,94597,12082,100102,12086
  2240. ,94603,83601,94604,83602,12089,94605,12090,100108,12092,83606
  2241. ,12093,100127,83624,100128,83625,100129,83626,155142,116635,83629
  2242. ,155143,83630,155144,83631,210208,72683,210211,39680,100193,39682
  2243. ,276249,39706,259767,94737,259809,94779,177307,94792,210322,72797
  2244. ,232332, 1290,232335,210331,210333,127818,210341,204840,56313,210344
  2245. ,34312, 1306,210345, 1307,210347,50818, 1309,243363,12321,270877
  2246. ,72841,105863,72857,39851,72858,39852,199385,72862,226891,199386
  2247. ,199387,149878,199388,72865,72873, 1360,72887,39881,72888,39882
  2248. ,270925,243420,105895,39883,105896,39884,105897,72891,226924,39890
  2249. ,133432,105927,39915,226953,105931,226956,105934,226959,122440,210474
  2250. ,116957,182980,39954,293012,67471,227026,39992,72999,39993,227037
  2251. ,183029,210536,40005,183035,106021,40009,199550,40021,117037,40023
  2252. ,271066,106036,40024,106037,73031,106038,73032,194055,73033,40027
  2253. ,227064,106042,221577,128060,117058,227087,106065,67558,227088,106066
  2254. , 1547,227089,117069,106067,73061,18051, 1548,227090,106068,73062
  2255. , 1549,100568,73063,227092,73064,227093,106071, 1552,227095,73067
  2256. ,227099,111578,122616,117115,243639,117116,73134,40128,205161,34630
  2257. ,122673, 1651,243703,73172,243704,106179,73173, 1660,73203,40197
  2258. ,106211,40199,106212,40200,106213,73207,122724,117223,227252,161240
  2259. ,254764,122740,243813,221809,172300,243818,106293,254837,243835,243837
  2260. ,89809,243844,122822,128376,106372,249404,133883,106378,133885,106380
  2261. ,106381,89878,243985,177973,177974,89958,177984,122974,255028,123004
  2262. ,178025,68005,23997,255044,205535,255060,178046,260599,178084,178090
  2263. ,112078,266119,178103,178109,24081,178112,161609,255128,178114,161611
  2264. ,178115,161612,178116,161613,255134,62599,255137,161620,293649,255142
  2265. ,183670,62648,260704,194692,249720,68187,222220,183713,194773, 2238
  2266. ,183772,156267, 2239,183773,156268,244289,183778,183787, 2254,238798
  2267. ,183788,183790, 2257,194794,183792,183795,95779,194805,183803,194834
  2268. ,29804,123328,13308,194850,189349,194856, 2321,282873,194857,40829
  2269. ,194858,40830, 2323,194860,40832,194861,156354,194863,40835,123355
  2270. ,40840,260927,51889,189416,117903,189418,117905,172917, 2386,238931
  2271. ,200424,172919,260936,238932,172920,249959,117935,238961,117939,238962
  2272. ,13421,266468,238963,238964,117942,183955,156450,194960,90441,156456
  2273. ,51937,260976,238972,260978,156459,13433,249991,211484,117967,40953
  2274. ,13448,249992,46455,13449,249993,40955,13450,227990,40956,40958
  2275. ,13453,40959,13454,62964,40960,13455,156484,40963,40964,13459
  2276. ,156489,40968,13463,156490,40969,13464,156491,40970,13465,189498
  2277. ,156492,117985,40971,13466,156493,40972,13467, 2465,156494,13468
  2278. ,156496,40975,156497,13471,239013,173001,156498,128993,13472,128995
  2279. ,13474, 2472,156501,128996, 2473,156502,13476, 2474,156503,106994
  2280. ,13477,250021,13478,250022,156505,13479,277528,250023,13480,250024
  2281. ,184012,156507,46487, 7980,156509,46489,13483,250027,156510,156511
  2282. ,101501,250030,118006,118017,18999,173029, 2498,173030, 2499,239072
  2283. ,118050,239078,118056,239089,118067,239090,118068,239091,118069,112568
  2284. ,250094,239092,118070,239095,118073,239096,118074,239097,129077,118075
  2285. ,239098,118076,239101,118079,250105,239103,178601,52078,41076,250133
  2286. ,178620,250138,46601,283157,134630,250161,134640,250162,134641,244664
  2287. ,134644,46628,134645,46629,250167,162151,123644,46630,46656,41155
  2288. ,123671,46657,134683,118180,288726,173205,228220,162208,134708,30189
  2289. ,239233,79704,173234,52212,294257,173235,184238,173236,173239,52217
  2290. ,184248,156743,24719,211756,184251,211757,184252,184265,35738,184274
  2291. ,134765,211785,156775,211786,184281,211788,74263,211794,184289,184290
  2292. ,156785,228301,184293,250315,134794,156810,74295,156811,74296,156812
  2293. ,74297,173317,156814,129309,228328,184320,74300,228330,156817,156825
  2294. ,112817,211837,156827,112828,85323,140337,134836,74325,173344,74326
  2295. ,173345,134838,74327,173346,134839,74328,134842,74331, 2818,173350
  2296. ,134843,211858,134844,134845,74334,134847,74336,134848,112844,173356
  2297. ,134849,173357,134850,250372,134851,173359,134852,173360,134853,173361
  2298. ,134854,211869,173362,195368,173364,173367,112856,261385,173369,134862
  2299. ,173370,112859,173372,140366,85356,173373,85357,19345,184377,173375
  2300. ,134868,134887,112883,272413,211902,134888,74377,184404,96388,85386
  2301. ,184405,85387,211911,184406,85388,211914,206413,96393,85391,211916
  2302. , 8379,211919,85396,211924,96403,222927,211925,272453,178936,112928
  2303. ,74421,255963,184450,162446,184453,112940,184454,123943,228463,184455
  2304. ,112942,184456,74436,211962,184457,107443,74437,41431,206462,184458
  2305. ,74438,41432,184459,41433,184461,96445,184462,74442,184464,90947
  2306. ,184465,74445,184474,74454,206480,85458,74456,184480,74460,41454
  2307. ,228489,74461,255995,173480,74462,255997,74464,228493,74465,85469
  2308. ,74467,41461,74468,41462,107475,68968,41463,107476,41464,107477
  2309. ,74471,256025,96496,256027,85496,256028,85497,124005,85498,19486
  2310. ,256031,124007,124008,107505,124009,107506,85502,256034,118509,107507
  2311. ,124014,107511,107514,96512,107516,96514,85527,52521,206562,25029
  2312. ,140552,118548,41534,146060,91050,146063,91053,146066,129563,256112
  2313. ,41573,256136,113110,41597,256137,250636,41598,102111,41600,228636
  2314. ,41602,256142,41603,107616,41604,223143,195638,129626,107622,261651
  2315. ,146130,129627,140630,129628,129631,107627,256159,129636,256161,146141
  2316. ,256166,107639,256167,107640,256168,107641,107642,19626,256171,107644
  2317. ,223166,107645,223167,107646,261685,19641,146183,85672,146184,85673
  2318. ,162690,146187,118682,52670,146188,19665,146191,91181,261713,146192
  2319. ,91182,261714,146193,91183,19670,289220,261715,146194,261719,146198
  2320. ,146199,113193,146200,25178,261722,129698,261724,146203,129709,85701
  2321. ,85710, 8696,162743,129737,129754,113251,228773,129755,228774,190267
  2322. ,151760,129756,228775,190268,228776,190269,129759,124258,129760,124259
  2323. ,261786,129762,129764,41748,129765,41749,129766,124265,69255,129768
  2324. ,91261,162775,124268,162777,129771,91275,85774,190297,69275,217804
  2325. ,190299,190300,146292,190303,146295,146296,85785,41777,190306,41779
  2326. ,52782,41780,162805,41783,261824,162806,261825,162807,261826,162808
  2327. ,96796,41786,41788, 8782,261847,256346,261848,256347,19804,261850
  2328. ,85818,261854,256353,118832,25315,261859,118833,85827,201372,190370
  2329. ,190378,140869,162889,118881,272923,190408,162916,41894,162917,129911
  2330. ,91404,162918,129912,190438,41911,190439,41912,190440,41913,190443
  2331. ,41916,162939,41917,162940,41918,162941,41919,162942,41920,162945
  2332. ,41923,278468,162947,129941,162948,129942,250969,129947,129950,47435
  2333. ,129952,47437,289509,47465,130014,113511,229052, 3511,53021, 3512
  2334. ,124535, 3513,163059,130053,97047,168571,47549, 3541,267591, 3543
  2335. ,130075, 3552,273104,130078,108075,42063,130080,42064,130081,42065
  2336. ,163092,75076,163093,130087,108107,42095,108108,42096,163121,42099
  2337. ,201629,163122, 3593,163123,47602,163124,42102,163127,47606,113620
  2338. ,47608,163130,113621,119135, 3614,229165,108143,119167,53155,163194
  2339. , 3665,42177, 3670,163205,119197, 3676,119198, 3677,251223,119199
  2340. , 3678,119203, 3682,119208, 3687,240245,108221,163232,42210,251257
  2341. ,42219,196257,42229,163255,42233,163256,42234,163257,42235,163258
  2342. ,108248,42236,130253,108249,163260,108250,163261,42239,163263,130257
  2343. ,163264,108254,251294,130272,119270,119281,108279,168791,108280,251333
  2344. ,119309, 3788,251358,119334,278870,113840,168879,31354,251402,168887
  2345. ,108391,42379,251419,42381,251421,97393,251422,196412,196413,97395
  2346. ,251424,196414,97396,251425,14882,251428,130406,251431,14888,108423
  2347. ,69916,42411,108424,42412,201967,14933,256980,108453,20437,240478
  2348. ,108454,108455,14938,240480,108456,108459,14942,240486,108462,240488
  2349. ,108464,97477,53469,240529,42493,202024,97505,295545,119513,240544
  2350. ,37007,147028,37008,108537,64529,229570,147055,218571,37038,240576
  2351. ,37039,42544,37043,42549,37048,202079,42550,108564,42552,108566
  2352. ,15049,42555,15050,15061, 9560,251616,108590,262629,240625,240695
  2353. ,207689,240697,169184,240698,207692,240699,42663,240704,213199,240706
  2354. ,218702,240707,213202,240708,37171,240709,37172,240710,37173,240711
  2355. ,37174,240713,37176,240714,196706,37177,37179, 4173,240722,125201
  2356. ,31684,257245,130722,163753,42731,290343,229832,163820,42798,268349
  2357. ,15303,130859,92352,130860, 9838,290407,42862,42871, 4364,268416
  2358. ,130891,290440,20891,290470,130941,20921,290471,20922,290472,20923
  2359. ,235485,224483,268498,130973,86965,290542,186023,120011,131015,70504
  2360. ,186026,131016,70505,153021,131017,131019,32001,257543,131020,290553
  2361. ,131024,131025,21005,131028,43012,131029,43013,131031,98025,274072
  2362. ,70535,235569,70539,290581,257575,21032,290582,257576,70542,21033
  2363. ,257577,21034,290586,257580,43041,43042,21038,131063,43047,131066
  2364. ,43050,290606,235596,235597,164084,70567,21058,10056,290608,235598
  2365. ,10057,290611,257605,21062,290612,257606,169590,21063,257607,26565
  2366. ,21064,257611,26569,268621,70585,186127,70606,268643,26599,87114
  2367. ,26603,70617,26609,257678,70644,257689,92659,26647,70656,26648
  2368. ,70657,43152,26649,43153,26650,70659,43154,26651,70660,26652
  2369. ,70661,26653,274199,70662,26654,70663,43158,26655,268700,92668
  2370. ,70664,26656,257701,70667,186189,70668,186190,70669,186191,70670
  2371. ,186192,147685,26663,70672,43167,26664,70673,26665,186195,70674
  2372. ,186200,70679,257716,43177,257717,43178,120194,43180,257722,158704
  2373. ,43183,10177,120212,48699,257739,120214,274250,257747,224748,186241
  2374. ,26712,186262,76242,65262, 4751,186301,70780,186306,120294,186326
  2375. ,26797,186330,180829,180832,147826,26804,246868,98341,70855,43350
  2376. ,268959,54420,26915,158985,26961,269016,26972,203012,148002,26980
  2377. ,230518,26981,159022,148020,159024,148022,170043,131536,54530,27025
  2378. ,236086,170074,236088,170076,236091,170079,236123,115101,10582,236126
  2379. ,115104,236135,208630,208631,87609,236138,159124,236139,159125,236142
  2380. ,208637,247147,208640,247148,49112,170146,27120,98635,32623,27122
  2381. ,159148,43627,27124,159149, 5121,170157,159155,236170,170158,159156
  2382. ,170160,109649,291196,247188,247206,27166,164704,98692,170212,27186
  2383. ,170216,49194,296761,175739,247289,214283,159273,247290,214284,164775
  2384. ,247319,214313,247320,214314,214322,131807,214324,131809,296878,131848
  2385. ,225388,214386,131889,32871,214424,186919,214425,186920,131910,214430
  2386. ,115412,236440,131921,32903,214439,49409,214449,208948,214450,87927
  2387. ,214455,98934,214456,98935,214459,27425,131948,60435,131954,32936
  2388. ,131963,32945,131964,32946,131965,32947,131966,32948, 5443,131967
  2389. ,32949,131968,32950,131971,32953,131972,32954,131973,32955,275000
  2390. ,131974,98968,131979,120977,280547,99014,82511,99015,82512,99016
  2391. ,82513,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2392. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2393. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2394. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2395. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2396. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2397. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2398. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2399. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2400. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2401. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2402. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2403. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2404. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2405. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2406. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2407. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2408. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2409. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2410. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2411. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2412. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2413. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2414. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2415. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2416. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2417. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2418. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2419. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2420. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2421. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2422. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2423. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2424. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2425. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2426. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2427. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2428. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2429. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2430. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2431. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2432. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2433. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2434. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2435. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2436. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2437. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2438. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2439. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2440. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2441. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2442. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2443. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2444. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2445. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2446. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2447. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2448. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2449. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2450. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2451. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2452. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2453. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2454. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2455. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2456. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2457. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2458. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2459. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2460. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2461. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2462. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2463. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2464. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2465. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2466. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2467. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2468. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2469. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2470. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2471. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2472. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2473. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2474. ,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0
  2475. ,    0,    0,    0,    0,    0,    0)  ;
  2476.         --| Hash values to check against to verify that
  2477.         --| correct action has been found for this
  2478.         --| parser state and input token.
  2479.         -- NYU Reference Name: ACTION_TABLE2
  2480.  
  2481.     DefaultMap :
  2482.         constant array (DefaultMapRange) of GC.ParserInteger :=
  2483.          ( 1396,    0,    0,    0,    0, 1394,    0, 1225, 1214, 1395
  2484. ,    0, 1216,    0, 1404,    0,    0,    0, 1218, 1219, 1220
  2485. , 1221, 1222, 1223,    0,    0, 1275, 1275, 1217, 1224,    0
  2486. ,    0,    0, 1275, 1097,    0, 1098, 1080,    0, 1079, 1041
  2487. , 1040,    0, 1095, 1096,    0, 1318, 1338, 1081, 1042, 1043
  2488. , 1044, 1084, 1063, 1324, 1066, 1067, 1068, 1069, 1070, 1071
  2489. , 1074, 1075, 1342, 1347, 1345,    0, 1085, 1082, 1083,    0
  2490. , 1321, 1161, 1162,    0, 1240,    0,    0, 1157,    0, 1275
  2491. , 1156, 1171, 1306,    0, 1022,    0, 1362, 1237,    0,    0
  2492. , 1238, 1239, 1400, 1398, 1397, 1288, 1106,  978, 1287,    0
  2493. ,    0, 1039,    0,    0, 1081, 1304,    0, 1315, 1313, 1062
  2494. ,    0, 1340,    0, 1088, 1086, 1090,    0, 1087, 1091, 1089
  2495. , 1072,    0,    0,    0,    0,    0,    0, 1320,    0, 1065
  2496. ,    0,    0,    0,    0,    0,    0,    0,    0, 1094, 1092
  2497. , 1093,    0, 1101, 1102, 1099, 1100,    0, 1103, 1076,    0
  2498. , 1081, 1077, 1343,    0,    0,    0,    0,    0, 1285,    0
  2499. , 1405,    0, 1174,    0,    0,    0,    0, 1371,    0, 1276
  2500. , 1362,    0,    0, 1275,    0,    0,    0,    0,  946, 1024
  2501. ,  947,  948,  949,  950,  951,  952,  953,  954,  955,  956
  2502. ,    0,  963,  964,  965, 1275, 1025, 1026,    0,    0, 1263
  2503. , 1264, 1265, 1266,    0,    0, 1275, 1034, 1035, 1036, 1037
  2504. , 1038,    0, 1275, 1279, 1362, 1144, 1363,    0,    0,    0
  2505. ,    0, 1275,    0,    0,    0,    0,    0,    0, 1078,    0
  2506. ,    0, 1018,    0, 1056,    0, 1057, 1315, 1215, 1341, 1319
  2507. , 1005, 1073, 1339,  984, 1054, 1053, 1055, 1052, 1051, 1104
  2508. , 1105,    0, 1047, 1048, 1050, 1049, 1046, 1324, 1322,    0
  2509. ,    0, 1338, 1328,    0, 1330, 1332, 1329, 1331, 1333,    0
  2510. ,    0, 1344, 1346, 1348,    0, 1159, 1287,    0, 1369,    0
  2511. , 1406,  962, 1166,    0, 1177,    0, 1369,    0,    0, 1372
  2512. , 1373,    0,    0, 1172, 1039,    0, 1044,    0,    0,    0
  2513. ,    0, 1188,    0, 1374,    0, 1307,    0,    0, 1187,    0
  2514. ,    0, 1308, 1023, 1275, 1362,    0,    0,    0, 1176, 1174
  2515. ,    0, 1226, 1399,    0, 1109, 1108, 1289, 1327, 1323, 1317
  2516. , 1310, 1313, 1061, 1017,    0,    0, 1311, 1313, 1316,    0
  2517. , 1060,    0,    0, 1045, 1064, 1326, 1325, 1334, 1336, 1335
  2518. , 1337,    0, 1166,    0, 1164,    0,    0,    0,    0,    0
  2519. ,    0, 1167, 1283,    0,    0,    0,    0, 1230,    0,    0
  2520. , 1257, 1169,    0,  945,    0,    0,    0,    0, 1362,    0
  2521. , 1189, 1275,    0,    0, 1020,    0,    0,    0,    0, 1283
  2522. , 1283,  976,    0,    0,    0,    0, 1028, 1029, 1030, 1031
  2523. , 1033, 1027, 1032, 1275,    0,    0,    0,    0,    0,    0
  2524. ,    0,    0,    0,    0,    0,    0,    0, 1279, 1039,    0
  2525. , 1280,    0, 1279, 1111, 1112,    0, 1115, 1116, 1117, 1118
  2526. , 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128
  2527. , 1129, 1130, 1351,    0,    0, 1198, 1199, 1200, 1145, 1281
  2528. , 1175, 1401, 1107, 1315, 1016, 1305, 1312, 1315, 1314, 1006
  2529. ,  985,    0, 1255, 1165, 1283,    0,    0,    0,    0,    0
  2530. ,    0,    0, 1250,    0,    0,  998, 1251, 1252,  997,    0
  2531. ,    0, 1300, 1408, 1407, 1244, 1286, 1168,    0,    0,    0
  2532. , 1253, 1158,    0, 1275,    0,    0, 1262, 1409, 1259,    0
  2533. , 1411,    0,    0, 1275,    0,    0,    0,    0, 1173,    0
  2534. ,  976, 1275, 1376, 1378,    0,    0,    0,    0,    0, 1275
  2535. ,    0,    0,  968,  969,  970,  971,  972,  973,  974,  990
  2536. ,  991,  992, 1292, 1292, 1300,    0, 1182,    0,    0,    0
  2537. , 1283, 1283,    0, 1231,    0,    0,    0,    0,  977,  979
  2538. ,  980,  981, 1186, 1177, 1193, 1309, 1227, 1192, 1392, 1384
  2539. ,    0,    0,    0, 1149,    0,    0, 1135, 1354,    0, 1132
  2540. , 1235,    0, 1153,    0,    0, 1388,    0,    0,    0, 1170
  2541. ,    0, 1349,    0, 1113, 1114, 1352,    0, 1279,    0,    0
  2542. , 1275, 1362,    0,    0, 1059, 1058, 1409, 1163,    0, 1370
  2543. , 1019,    0, 1248, 1247, 1249, 1246,    0, 1242,    0,    0
  2544. , 1284, 1241, 1409,    0,    0,    0,    0,    0,    0, 1413
  2545. ,    0, 1275,    0, 1268, 1267, 1185,  975, 1378,    0,    0
  2546. , 1275,  996,  994,    0,  983, 1180,    0,    0, 1298,  988
  2547. ,  989, 1290,  987,  966, 1293,  993,  995,    0, 1375, 1081
  2548. , 1296, 1004,    0,    0,    0,    0,    0,  957,  959,    0
  2549. ,    0,    0,    0,    0,    0,    0, 1281, 1197,    0,    0
  2550. , 1151, 1155, 1356, 1279, 1236, 1154,    0,    0,    0, 1279
  2551. , 1279, 1279, 1203, 1204, 1205, 1206, 1356, 1131,    0,    0
  2552. , 1279,    0,    0, 1141, 1279, 1362,    0,    0, 1282, 1367
  2553. , 1366, 1146,    0, 1160, 1294, 1081, 1245, 1283,    0,    0
  2554. ,    0, 1193,    0,    0, 1412,  944, 1273,    0,    0,    0
  2555. , 1275,    0,    0, 1380, 1362, 1275, 1377, 1178, 1275,    0
  2556. ,    0,    0,    0, 1003,    0, 1000,  961,  958,  960, 1184
  2557. , 1183,  982, 1228, 1229,    0, 1212,    0,    0, 1369, 1279
  2558. , 1195,    0, 1150,    0, 1279,    0,    0, 1353, 1279,    0
  2559. ,    0, 1391, 1208,    0, 1207, 1279,    0, 1274, 1133, 1350
  2560. ,    0,    0,    0,    0, 1148, 1234, 1233, 1402, 1368,    0
  2561. ,    0,    0, 1012,    0, 1301,    0, 1258, 1410,    0,    0
  2562. ,    0, 1414,    0, 1362,    0,    0, 1190, 1379, 1010, 1007
  2563. ,    0,    0, 1275, 1275,  986,    0,    0, 1021, 1002,    0
  2564. , 1393, 1386,    0,    0,    0, 1358, 1152, 1357,    0,    0
  2565. , 1209,    0, 1279, 1279,    0, 1389,    0,    0, 1142, 1362
  2566. ,    0, 1147,    0, 1256,    0,    0, 1001,    0, 1254, 1272
  2567. , 1269,    0,    0, 1191,    0, 1369, 1194,    0,    0,    0
  2568. , 1009, 1291,    0,    0,    0, 1297,    0, 1385, 1362,    0
  2569. , 1304,    0, 1279,    0, 1202,    0,    0,    0, 1143,    0
  2570. , 1362,    0, 1279,    0, 1295,    0, 1243,    0, 1270, 1382
  2571. ,    0, 1277, 1283,    0, 1181,  967, 1369,    0, 1279,    0
  2572. ,    0, 1359, 1355, 1134,    0,    0, 1201, 1139,    0, 1403
  2573. , 1232,  999,    0, 1271,    0, 1381,    0,    0, 1179,    0
  2574. , 1196, 1138, 1279,    0,    0,    0, 1140, 1369,    0, 1278
  2575. , 1302, 1011, 1387, 1137, 1136, 1210,    0,    0,    0, 1304
  2576. ,    0, 1211, 1383, 1275,    0,    0, 1303, 1015, 1275,    0
  2577. , 1014, 1013)  ;
  2578.         --| Map of states (constant array index) to default reductions.
  2579.         -- NYU Reference Name: DEFAULT
  2580.   
  2581.     type FollowSymbolIndexArray is array ( PositiveParserInteger range <>)
  2582.         of GC.ParserInteger ;
  2583.  
  2584.     FollowSymbolMapIndex : constant FollowSymbolIndexArray :=
  2585.          (    1,    1,    2,    2,    3,    3,    4,   43,   44,   57
  2586. ,   58,   71,   72,   85,   86,   99,  100,  113,  114,  130
  2587. ,  131,  147,  148,  161,  162,  178,  179,  192,  193,  209
  2588. ,  210,  223,  224,  224,  225,  226,  227,  228,  229,  230
  2589. ,  231,  237,  238,  239,  240,  253,  254,  267,  268,  281
  2590. ,  282,  282,  283,  284,  285,  286,  287,  287,  288,  288
  2591. ,  289,  289,  290,  290,  291,  291,  292,  292,  293,  293
  2592. ,  294,  327,  328,  329,  330,  363,  364,  370,  371,  372
  2593. ,  373,  374,  375,  396,  397,  398,  399,  400,  401,  402
  2594. ,  403,  405,  406,  407,  408,  410,  411,  411,  412,  413
  2595. ,  414,  415,  416,  416,  417,  450,  451,  453,  454,  455
  2596. ,  456,  465,  466,  467,  468,  488,  489,  490,  491,  495
  2597. ,  496,  498,  499,  500,  501,  502,  503,  504,  505,  506
  2598. ,  507,  508,  509,  521,  522,  523,  524,  532,  533,  540
  2599. ,  541,  554,  555,  568,  569,  584,  585,  593,  594,  605
  2600. ,  606,  614,  615,  626,  627,  638,  639,  650,  651,  684
  2601. ,  685,  718,  719,  753,  754,  787,  788,  822,  823,  823
  2602. ,  824,  853,  854,  855,  856,  856,  857,  858,  859,  860
  2603. ,  861,  861,  862,  863,  864,  865,  866,  867,  868,  877
  2604. ,  878,  885,  886,  893,  894,  901,  902,  909,  910,  917
  2605. ,  918,  927,  928,  938,  939,  963,  964,  992,  993, 1017
  2606. , 1018, 1047, 1048, 1076, 1077, 1105, 1106, 1112, 1113, 1142
  2607. , 1143, 1172, 1173, 1202, 1203, 1213, 1214, 1222, 1223, 1231
  2608. , 1232, 1240, 1241, 1247, 1248, 1284, 1285, 1312, 1313, 1339
  2609. , 1340, 1365, 1366, 1371, 1372, 1398, 1399, 1425, 1426, 1445
  2610. , 1446, 1472, 1473, 1499, 1500, 1526, 1527, 1553, 1554, 1580
  2611. , 1581, 1607, 1608, 1634, 1635, 1661, 1662, 1688, 1689, 1715
  2612. , 1716, 1742, 1743, 1769, 1770, 1796, 1797, 1823, 1824, 1850
  2613. , 1851, 1877, 1878, 1897, 1898, 1900, 1901, 1903, 1904, 1904
  2614. , 1905, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1917
  2615. , 1918, 1918, 1919, 1919, 1920, 1922, 1923, 1925, 1926, 1926
  2616. , 1927, 1928, 1929, 1931, 1932, 1933, 1934, 1935, 1936, 1938
  2617. , 1939, 1939, 1940, 1940, 1941, 1941, 1942, 1942, 1943, 1955
  2618. , 1956, 1968, 1969, 1970, 1971, 1971, 1972, 1974, 1975, 1976
  2619. , 1977, 1988, 1989, 1989, 1990, 1993, 1994, 1995, 1996, 2022
  2620. , 2023, 2049, 2050, 2076, 2077, 2079, 2080, 2082, 2083, 2085
  2621. , 2086, 2088, 2089, 2091, 2092, 2094, 2095, 2097, 2098, 2099
  2622. , 2100, 2107, 2108, 2109, 2110, 2117, 2118, 2122, 2123, 2130
  2623. , 2131, 2138, 2139, 2144, 2145, 2146, 2147, 2154, 2155, 2156
  2624. , 2157, 2158, 2159, 2160, 2161, 2161, 2162, 2164, 2165, 2170
  2625. , 2171, 2176, 2177, 2177, 2178, 2178, 2179, 2180, 2181, 2182
  2626. , 2183, 2184, 2185, 2185, 2186, 2187, 2188, 2201, 2202, 2215
  2627. , 2216, 2229, 2230, 2243, 2244, 2247, 2248, 2252, 2253, 2257
  2628. , 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2270)  ;
  2629.   
  2630.     FollowSymbolMap : constant FollowSymbolArray :=
  2631.          (   96,   96,   72,    2,    4,   10,   12,   14,   15,   19
  2632. ,   20,   21,   22,   23,   24,   25,   26,   27,   28,   29
  2633. ,   33,   37,   39,   42,   43,   44,   45,   46,   51,   53
  2634. ,   54,   55,   56,   57,   59,   60,   61,   62,   63,   65
  2635. ,   67,   68,   92,   10,   21,   25,   26,   27,   42,   43
  2636. ,   44,   45,   55,   56,   59,   60,   65,   10,   21,   25
  2637. ,   26,   27,   42,   43,   44,   45,   55,   56,   59,   60
  2638. ,   65,   10,   21,   25,   26,   27,   42,   43,   44,   45
  2639. ,   55,   56,   59,   60,   65,   10,   21,   25,   26,   27
  2640. ,   42,   43,   44,   45,   55,   56,   59,   60,   65,   10
  2641. ,   21,   25,   26,   27,   42,   43,   44,   45,   55,   56
  2642. ,   59,   60,   65,   10,   21,   25,   26,   27,   42,   43
  2643. ,   44,   45,   54,   55,   56,   59,   60,   63,   65,   96
  2644. ,   10,   21,   25,   26,   27,   42,   43,   44,   45,   54
  2645. ,   55,   56,   59,   60,   63,   65,   96,   10,   21,   25
  2646. ,   26,   27,   42,   43,   44,   45,   55,   56,   59,   60
  2647. ,   65,   10,   21,   25,   26,   27,   42,   43,   44,   45
  2648. ,   54,   55,   56,   59,   60,   63,   65,   96,   10,   21
  2649. ,   25,   26,   27,   42,   43,   44,   45,   55,   56,   59
  2650. ,   60,   65,   10,   21,   25,   26,   27,   42,   43,   44
  2651. ,   45,   54,   55,   56,   59,   60,   63,   65,   96,   10
  2652. ,   21,   25,   26,   27,   42,   43,   44,   45,   55,   56
  2653. ,   59,   60,   65,   79,   80,   88,   72,   80,   80,   88
  2654. ,   31,   33,   58,   72,   75,   80,   85,   75,   79,   10
  2655. ,   21,   25,   26,   27,   42,   43,   44,   45,   55,   56
  2656. ,   59,   60,   65,   10,   21,   25,   26,   27,   42,   43
  2657. ,   44,   45,   55,   56,   59,   60,   65,   10,   21,   25
  2658. ,   26,   27,   42,   43,   44,   45,   55,   56,   59,   60
  2659. ,   65,   80,   72,   80,   72,   80,   80,   80,   80,   80
  2660. ,   80,   80,   80,    7,   16,   17,   30,   31,   33,   34
  2661. ,   36,   39,   47,   49,   50,   58,   64,   69,   71,   72
  2662. ,   73,   74,   75,   76,   78,   80,   81,   82,   83,   84
  2663. ,   85,   86,   87,   88,   89,   90,   91,   80,   88,    7
  2664. ,   16,   17,   30,   31,   33,   34,   36,   39,   47,   49
  2665. ,   50,   58,   64,   69,   71,   72,   73,   74,   75,   76
  2666. ,   78,   80,   81,   82,   83,   84,   85,   86,   87,   88
  2667. ,   89,   90,   91,   33,   72,   75,   80,   84,   85,   88
  2668. ,   80,   88,   80,   88,    7,   30,   31,   33,   36,   39
  2669. ,   47,   58,   64,   72,   75,   80,   81,   82,   83,   84
  2670. ,   85,   86,   88,   89,   90,   91,   72,   75,   72,   75
  2671. ,   72,   75,   47,   80,   88,   80,   88,   47,   80,   88
  2672. ,   80,   72,   75,   72,   75,   38,    7,    9,   30,   31
  2673. ,   33,   34,   36,   39,   47,   49,   58,   64,   69,   70
  2674. ,   71,   72,   73,   74,   75,   76,   77,   78,   80,   81
  2675. ,   82,   83,   84,   85,   86,   87,   88,   89,   90,   91
  2676. ,   33,   72,   75,   72,   75,    7,   31,   33,   39,   58
  2677. ,   64,   72,   75,   80,   85,   21,   61,   10,   12,   21
  2678. ,   22,   25,   26,   27,   42,   43,   44,   45,   54,   55
  2679. ,   56,   59,   60,   61,   63,   65,   67,   68,   12,   65
  2680. ,   12,   21,   43,   61,   65,   21,   43,   61,   43,   61
  2681. ,   21,   61,   21,   61,   84,   85,   84,   85,   10,   21
  2682. ,   25,   26,   27,   42,   44,   45,   55,   56,   59,   60
  2683. ,   65,   10,   21,   10,   21,   26,   27,   42,   43,   45
  2684. ,   56,   60,   10,   21,   26,   27,   42,   45,   56,   60
  2685. ,   10,   21,   25,   26,   27,   42,   43,   44,   45,   55
  2686. ,   56,   59,   60,   65,   10,   21,   25,   26,   27,   42
  2687. ,   43,   44,   45,   55,   56,   59,   60,   65,   10,   21
  2688. ,   25,   26,   27,   42,   43,   44,   45,   54,   55,   56
  2689. ,   59,   60,   63,   65,   10,   21,   26,   27,   42,   43
  2690. ,   45,   56,   60,   10,   21,   26,   27,   42,   43,   45
  2691. ,   54,   56,   60,   63,   96,   10,   21,   26,   27,   42
  2692. ,   43,   45,   56,   60,   10,   21,   26,   27,   42,   43
  2693. ,   45,   54,   56,   60,   63,   96,   10,   21,   26,   27
  2694. ,   42,   43,   45,   54,   56,   60,   63,   96,   10,   21
  2695. ,   26,   27,   42,   43,   45,   54,   56,   60,   63,   96
  2696. ,    7,    9,   30,   31,   33,   34,   36,   39,   47,   49
  2697. ,   58,   64,   69,   70,   71,   72,   73,   74,   75,   76
  2698. ,   77,   78,   80,   81,   82,   83,   84,   85,   86,   87
  2699. ,   88,   89,   90,   91,    7,    9,   30,   31,   33,   34
  2700. ,   36,   39,   47,   49,   58,   64,   69,   70,   71,   72
  2701. ,   73,   74,   75,   76,   77,   78,   80,   81,   82,   83
  2702. ,   84,   85,   86,   87,   88,   89,   90,   91,    7,    9
  2703. ,   30,   31,   33,   34,   36,   39,   47,   49,   58,   60
  2704. ,   64,   69,   70,   71,   72,   73,   74,   75,   76,   77
  2705. ,   78,   80,   81,   82,   83,   84,   85,   86,   87,   88
  2706. ,   89,   90,   91,    7,    9,   30,   31,   33,   34,   36
  2707. ,   39,   47,   49,   58,   64,   69,   70,   71,   72,   73
  2708. ,   74,   75,   76,   77,   78,   80,   81,   82,   83,   84
  2709. ,   85,   86,   87,   88,   89,   90,   91,    7,    9,   30
  2710. ,   31,   33,   34,   36,   39,   47,   49,   58,   60,   64
  2711. ,   69,   70,   71,   72,   73,   74,   75,   76,   77,   78
  2712. ,   80,   81,   82,   83,   84,   85,   86,   87,   88,   89
  2713. ,   90,   91,   72,    7,   30,   31,   33,   34,   36,   39
  2714. ,   47,   49,   58,   64,   69,   72,   73,   74,   75,   76
  2715. ,   78,   80,   81,   82,   83,   84,   85,   86,   87,   88
  2716. ,   89,   90,   91,   72,   75,   72,   72,   75,   72,   75
  2717. ,   72,   72,   75,   72,   75,   72,   75,    7,   31,   33
  2718. ,   39,   58,   64,   72,   75,   80,   85,    7,   31,   33
  2719. ,   58,   72,   75,   80,   85,   31,   33,   39,   58,   72
  2720. ,   75,   80,   85,   31,   33,   58,   64,   72,   75,   80
  2721. ,   85,    7,   31,   33,   58,   72,   75,   80,   85,   31
  2722. ,   33,   39,   58,   72,   75,   80,   85,    7,   31,   33
  2723. ,   39,   58,   64,   72,   75,   80,   85,    3,   35,   36
  2724. ,   37,   65,   66,   67,   68,   71,   74,   76,    7,   30
  2725. ,   31,   33,   36,   39,   47,   58,   64,   69,   72,   74
  2726. ,   75,   76,   80,   81,   82,   83,   84,   85,   86,   88
  2727. ,   89,   90,   91,    7,   30,   31,   33,   34,   36,   39
  2728. ,   47,   49,   58,   64,   69,   72,   73,   74,   75,   76
  2729. ,   78,   80,   81,   82,   83,   84,   85,   86,   88,   89
  2730. ,   90,   91,    7,   30,   31,   33,   36,   39,   47,   58
  2731. ,   64,   69,   72,   74,   75,   76,   80,   81,   82,   83
  2732. ,   84,   85,   86,   88,   89,   90,   91,    7,   30,   31
  2733. ,   33,   34,   36,   39,   47,   49,   58,   64,   69,   72
  2734. ,   73,   74,   75,   76,   78,   80,   81,   82,   83,   84
  2735. ,   85,   86,   87,   88,   89,   90,   91,    7,   30,   31
  2736. ,   33,   34,   36,   39,   47,   49,   58,   64,   69,   72
  2737. ,   73,   74,   75,   76,   78,   80,   81,   82,   83,   84
  2738. ,   85,   86,   88,   89,   90,   91,    7,   30,   31,   33
  2739. ,   34,   36,   39,   47,   49,   58,   64,   69,   72,   73
  2740. ,   74,   75,   76,   78,   80,   81,   82,   83,   84,   85
  2741. ,   86,   88,   89,   90,   91,   35,   37,   65,   66,   67
  2742. ,   68,   71,    7,   30,   31,   33,   34,   36,   39,   47
  2743. ,   49,   58,   64,   69,   72,   73,   74,   75,   76,   78
  2744. ,   80,   81,   82,   83,   84,   85,   86,   87,   88,   89
  2745. ,   90,   91,    7,   30,   31,   33,   34,   36,   39,   47
  2746. ,   49,   58,   64,   69,   72,   73,   74,   75,   76,   78
  2747. ,   80,   81,   82,   83,   84,   85,   86,   87,   88,   89
  2748. ,   90,   91,    7,   30,   31,   33,   34,   36,   39,   47
  2749. ,   49,   58,   64,   69,   72,   73,   74,   75,   76,   78
  2750. ,   80,   81,   82,   83,   84,   85,   86,   87,   88,   89
  2751. ,   90,   91,    3,   35,   36,   37,   65,   66,   67,   68
  2752. ,   71,   74,   76,    3,   35,   36,   37,   65,   66,   67
  2753. ,   68,   71,    3,   35,   36,   37,   65,   66,   67,   68
  2754. ,   71,    3,   35,   36,   37,   65,   66,   67,   68,   71
  2755. ,   35,   37,   65,   66,   67,   68,   71,    7,   16,   17
  2756. ,   30,   31,   33,   34,   36,   39,   47,   49,   50,   58
  2757. ,   61,   64,   69,   70,   71,   72,   73,   74,   75,   76
  2758. ,   77,   78,   80,   81,   82,   83,   84,   85,   86,   87
  2759. ,   88,   89,   90,   91,    2,    4,   10,   12,   14,   15
  2760. ,   19,   20,   21,   23,   24,   25,   28,   29,   33,   37
  2761. ,   39,   43,   46,   51,   53,   57,   61,   62,   65,   67
  2762. ,   68,   92,    2,    4,   10,   12,   14,   15,   19,   20
  2763. ,   21,   23,   24,   25,   28,   29,   33,   37,   39,   43
  2764. ,   46,   51,   53,   61,   62,   65,   67,   68,   92,    2
  2765. ,    4,   10,   12,   14,   15,   19,   20,   21,   23,   24
  2766. ,   25,   28,   29,   33,   37,   39,   46,   51,   53,   61
  2767. ,   62,   65,   67,   68,   92,   19,   20,   21,   23,   39
  2768. ,   61,    2,    4,   10,   12,   14,   15,   19,   20,   21
  2769. ,   23,   24,   25,   28,   29,   33,   37,   39,   43,   46
  2770. ,   51,   53,   61,   62,   65,   67,   68,   92,    2,    4
  2771. ,   10,   12,   14,   15,   19,   20,   21,   23,   24,   25
  2772. ,   28,   29,   33,   37,   39,   43,   46,   51,   53,   61
  2773. ,   62,   65,   67,   68,   92,    2,    4,   10,   12,   14
  2774. ,   15,   24,   25,   28,   29,   33,   37,   46,   51,   53
  2775. ,   62,   65,   67,   68,   92,    2,    4,   10,   12,   14
  2776. ,   15,   19,   20,   21,   23,   24,   25,   28,   29,   33
  2777. ,   37,   39,   43,   46,   51,   53,   61,   62,   65,   67
  2778. ,   68,   92,    2,    4,   10,   12,   14,   15,   19,   20
  2779. ,   21,   23,   24,   25,   28,   29,   33,   37,   39,   43
  2780. ,   46,   51,   53,   61,   62,   65,   67,   68,   92,    2
  2781. ,    4,   10,   12,   14,   15,   19,   20,   21,   23,   24
  2782. ,   25,   28,   29,   33,   37,   39,   43,   46,   51,   53
  2783. ,   61,   62,   65,   67,   68,   92,    2,    4,   10,   12
  2784. ,   14,   15,   19,   20,   21,   23,   24,   25,   28,   29
  2785. ,   33,   37,   39,   43,   46,   51,   53,   61,   62,   65
  2786. ,   67,   68,   92,    2,    4,   10,   12,   14,   15,   19
  2787. ,   20,   21,   23,   24,   25,   28,   29,   33,   37,   39
  2788. ,   43,   46,   51,   53,   61,   62,   65,   67,   68,   92
  2789. ,    2,    4,   10,   12,   14,   15,   19,   20,   21,   23
  2790. ,   24,   25,   28,   29,   33,   37,   39,   43,   46,   51
  2791. ,   53,   61,   62,   65,   67,   68,   92,    2,    4,   10
  2792. ,   12,   14,   15,   19,   20,   21,   23,   24,   25,   28
  2793. ,   29,   33,   37,   39,   43,   46,   51,   53,   61,   62
  2794. ,   65,   67,   68,   92,    2,    4,   10,   12,   14,   15
  2795. ,   19,   20,   21,   23,   24,   25,   28,   29,   33,   37
  2796. ,   39,   43,   46,   51,   53,   61,   62,   65,   67,   68
  2797. ,   92,    2,    4,   10,   12,   14,   15,   19,   20,   21
  2798. ,   23,   24,   25,   28,   29,   33,   37,   39,   43,   46
  2799. ,   51,   53,   61,   62,   65,   67,   68,   92,    2,    4
  2800. ,   10,   12,   14,   15,   19,   20,   21,   23,   24,   25
  2801. ,   28,   29,   33,   37,   39,   43,   46,   51,   53,   61
  2802. ,   62,   65,   67,   68,   92,    2,    4,   10,   12,   14
  2803. ,   15,   19,   20,   21,   23,   24,   25,   28,   29,   33
  2804. ,   37,   39,   43,   46,   51,   53,   61,   62,   65,   67
  2805. ,   68,   92,    2,    4,   10,   12,   14,   15,   19,   20
  2806. ,   21,   23,   24,   25,   28,   29,   33,   37,   39,   43
  2807. ,   46,   51,   53,   61,   62,   65,   67,   68,   92,    2
  2808. ,    4,   10,   12,   14,   15,   19,   20,   21,   23,   24
  2809. ,   25,   28,   29,   33,   37,   39,   43,   46,   51,   53
  2810. ,   61,   62,   65,   67,   68,   92,    2,    4,   10,   12
  2811. ,   14,   15,   19,   20,   21,   23,   24,   25,   28,   29
  2812. ,   33,   37,   39,   43,   46,   51,   53,   61,   62,   65
  2813. ,   67,   68,   92,    2,    4,   10,   12,   14,   15,   19
  2814. ,   20,   21,   23,   24,   25,   28,   29,   33,   37,   39
  2815. ,   43,   46,   51,   53,   61,   62,   65,   67,   68,   92
  2816. ,    2,    4,   10,   12,   14,   15,   19,   20,   21,   23
  2817. ,   24,   25,   28,   29,   33,   37,   39,   43,   46,   51
  2818. ,   53,   61,   62,   65,   67,   68,   92,    2,    4,   10
  2819. ,   12,   14,   15,   24,   25,   28,   29,   33,   37,   46
  2820. ,   51,   53,   62,   65,   67,   68,   92,   19,   20,   21
  2821. ,   19,   20,   21,   21,   33,   58,   80,   85,   43,   61
  2822. ,   21,   61,   21,   61,   25,   33,   62,   80,   33,   65
  2823. ,   67,   80,   65,   67,   80,   21,   10,   14,   31,   50
  2824. ,   80,   72,   80,   72,   80,   31,   51,   71,   65,   65
  2825. ,   80,   80,   21,   25,   26,   27,   42,   43,   44,   45
  2826. ,   55,   56,   59,   60,   65,   10,   21,   25,   26,   27
  2827. ,   42,   43,   45,   55,   56,   59,   60,   65,   75,   80
  2828. ,   80,   21,   22,   25,   21,   25,   10,   25,   26,   27
  2829. ,   42,   43,   45,   55,   56,   59,   60,   65,   80,   21
  2830. ,   22,   25,   43,   18,   80,    2,    4,   10,   12,   14
  2831. ,   15,   19,   20,   21,   23,   24,   25,   28,   29,   33
  2832. ,   37,   39,   43,   46,   51,   53,   61,   62,   65,   67
  2833. ,   68,   92,    2,    4,   10,   12,   14,   15,   19,   20
  2834. ,   21,   23,   24,   25,   28,   29,   33,   37,   39,   43
  2835. ,   46,   51,   53,   61,   62,   65,   67,   68,   92,    2
  2836. ,    4,   10,   12,   14,   15,   19,   20,   21,   23,   24
  2837. ,   25,   28,   29,   33,   37,   39,   43,   46,   51,   53
  2838. ,   61,   62,   65,   67,   68,   92,   19,   21,   39,   19
  2839. ,   21,   39,   19,   21,   39,   19,   21,   39,   19,   21
  2840. ,   39,   19,   21,   39,   19,   21,   39,   75,   80,   26
  2841. ,   27,   42,   43,   45,   54,   63,   96,   71,   80,   26
  2842. ,   27,   42,   43,   45,   54,   63,   96,   26,   27,   42
  2843. ,   45,   54,   26,   27,   42,   43,   45,   54,   63,   96
  2844. ,   26,   27,   42,   43,   45,   54,   63,   96,   26,   27
  2845. ,   42,   45,   54,   63,   75,   80,   26,   27,   42,   43
  2846. ,   45,   54,   60,   63,   84,   85,   84,   85,   21,   61
  2847. ,   80,   26,   42,   45,   26,   42,   45,   59,   63,   65
  2848. ,   26,   42,   45,   59,   63,   65,   80,   80,   72,   75
  2849. ,   72,   75,   72,   75,   85,   72,   75,   10,   21,   25
  2850. ,   26,   27,   42,   43,   44,   45,   55,   56,   59,   60
  2851. ,   65,   10,   21,   25,   26,   27,   42,   43,   44,   45
  2852. ,   55,   56,   59,   60,   65,   10,   21,   25,   26,   27
  2853. ,   42,   43,   44,   45,   55,   56,   59,   60,   65,   10
  2854. ,   21,   25,   26,   27,   42,   43,   44,   45,   55,   56
  2855. ,   59,   60,   65,   21,   65,   67,   68,   21,   43,   65
  2856. ,   67,   68,   21,   43,   65,   67,   68,   72,   75,   84
  2857. ,   85,   21,   61,   26,   27,   42,   45,   54,   60,   63
  2858.  ) ;
  2859.         --| Map of states to sets of follow symbols
  2860.         -- NYU Reference Name: FOLLOW
  2861.  
  2862.     ------------------------------------------------------------------
  2863.     -- Action_Token_Map
  2864.     ------------------------------------------------------------------
  2865.  
  2866.     
  2867.     type Action_Token_Array_Index is array(
  2868.         PositiveParserInteger range <>) of GC.ParserInteger ;
  2869.         --| For indexing the All Action Token Array.
  2870.         --| Maps a given state into the lower and upper bounds of a slice
  2871.         --| of the All Action Index Array.
  2872.     
  2873.     Action_Token_MapIndex : constant Action_Token_Array_Index :=
  2874.          (    1,    1,    2,    2,    3,    2,    3,    9,   10,   11
  2875. ,   12,   11,   12,   16,   17,   17,   18,   17,   18,   17
  2876. ,   18,   28,   29,   28,   29,   30,   31,   30,   31,   32
  2877. ,   33,   33,   34,   34,   35,   34,   35,   34,   35,   34
  2878. ,   35,   34,   35,   34,   35,   34,   35,   36,   37,   37
  2879. ,   38,   37,   38,   37,   38,   37,   38,   37,   38,   38
  2880. ,   39,   41,   42,   42,   43,   42,   43,   42,   43,   43
  2881. ,   44,   43,   44,   43,   44,   71,   72,   71,   72,   71
  2882. ,   72,   71,   72,   83,   84,   83,   84,   83,   84,   84
  2883. ,   85,   84,   85,   93,   94,   97,   98,   97,   98,   97
  2884. ,   98,   97,   98,   97,   98,   98,   99,   98,   99,  101
  2885. ,  102,  102,  103,  103,  104,  104,  105,  105,  106,  106
  2886. ,  107,  109,  110,  113,  114,  113,  114,  114,  115,  114
  2887. ,  115,  121,  122,  121,  122,  121,  122,  121,  122,  130
  2888. ,  131,  130,  131,  130,  131,  130,  131,  133,  134,  136
  2889. ,  137,  137,  138,  138,  139,  139,  140,  140,  141,  141
  2890. ,  142,  141,  142,  141,  142,  142,  143,  154,  155,  164
  2891. ,  165,  166,  167,  167,  168,  167,  168,  169,  170,  170
  2892. ,  171,  170,  171,  170,  171,  170,  171,  171,  172,  172
  2893. ,  173,  172,  173,  173,  174,  173,  174,  175,  176,  177
  2894. ,  178,  178,  179,  178,  179,  180,  181,  196,  197,  200
  2895. ,  201,  200,  201,  201,  202,  202,  203,  202,  203,  202
  2896. ,  203,  203,  204,  203,  204,  204,  205,  204,  205,  204
  2897. ,  205,  204,  205,  215,  216,  215,  216,  215,  216,  215
  2898. ,  216,  215,  216,  226,  227,  237,  238,  248,  249,  253
  2899. ,  254,  264,  265,  268,  269,  268,  269,  279,  280,  280
  2900. ,  281,  292,  293,  304,  305,  315,  316,  326,  327,  337
  2901. ,  338,  348,  349,  349,  350,  350,  351,  350,  351,  350
  2902. ,  351,  350,  351,  359,  360,  359,  360,  359,  360,  359
  2903. ,  360,  359,  360,  368,  369,  368,  369,  368,  369,  375
  2904. ,  376,  378,  379,  378,  379,  378,  379,  379,  380,  380
  2905. ,  381,  381,  382,  382,  383,  384,  385,  384,  385,  385
  2906. ,  386,  385,  386,  386,  387,  387,  388,  388,  389,  390
  2907. ,  391,  391,  392,  392,  393,  394,  395,  395,  396,  395
  2908. ,  396,  396,  397,  399,  400,  400,  401,  400,  401,  401
  2909. ,  402,  403,  404,  404,  405,  405,  406,  405,  406,  405
  2910. ,  406,  405,  406,  405,  406,  405,  406,  405,  406,  405
  2911. ,  406,  405,  406,  405,  406,  405,  406,  405,  406,  405
  2912. ,  406,  406,  407,  406,  407,  406,  407,  406,  407,  406
  2913. ,  407,  406,  407,  406,  407,  409,  410,  410,  411,  410
  2914. ,  411,  410,  411,  410,  411,  410,  411,  412,  413,  415
  2915. ,  416,  415,  416,  415,  416,  415,  416,  415,  416,  415
  2916. ,  416,  415,  416,  418,  419,  418,  419,  418,  419,  419
  2917. ,  420,  419,  420,  419,  420,  420,  421,  422,  423,  423
  2918. ,  424,  425,  426,  425,  426,  436,  437,  437,  438,  438
  2919. ,  439,  439,  440,  450,  451,  461,  462,  461,  462,  473
  2920. ,  474,  484,  485,  484,  485,  486,  487,  486,  487,  498
  2921. ,  499,  498,  499,  499,  500,  499,  500,  499,  500,  499
  2922. ,  500,  500,  501,  500,  501,  500,  501,  501,  502,  501
  2923. ,  502,  501,  502,  501,  502,  501,  502,  501,  502,  501
  2924. ,  502,  501,  502,  502,  503,  502,  503,  502,  503,  502
  2925. ,  503,  502,  503,  502,  503,  502,  503,  502,  503,  503
  2926. ,  504,  514,  515,  522,  523,  522,  523,  533,  534,  533
  2927. ,  534,  533,  534,  533,  534,  533,  534,  533,  534,  544
  2928. ,  545,  555,  556,  555,  556,  555,  556,  555,  556,  556
  2929. ,  557,  556,  557,  557,  558,  558,  559,  558,  559,  560
  2930. ,  561,  561,  562,  562,  563,  563,  564,  564,  565,  564
  2931. ,  565,  565,  566,  565,  566,  569,  570,  572,  573,  572
  2932. ,  573,  572,  573,  573,  574,  575,  576,  575,  576,  576
  2933. ,  577,  579,  580,  580,  581,  582,  583,  593,  594,  594
  2934. ,  595,  595,  596,  596,  597,  599,  600,  600,  601,  604
  2935. ,  605,  605,  606,  606,  607,  609,  610,  609,  610,  610
  2936. ,  611,  611,  612,  612,  613,  618,  619,  620,  621,  621
  2937. ,  622,  642,  643,  644,  645,  645,  646,  645,  646,  645
  2938. ,  646,  646,  647,  646,  647,  647,  648,  648,  649,  648
  2939. ,  649,  648,  649,  648,  649,  648,  649,  648,  649,  648
  2940. ,  649,  648,  649,  648,  649,  648,  649,  648,  649,  659
  2941. ,  660,  670,  671,  670,  671,  670,  671,  670,  671,  682
  2942. ,  683,  682,  683,  693,  694,  704,  705,  704,  705,  705
  2943. ,  706,  705,  706,  705,  706,  705,  706,  705,  706,  705
  2944. ,  706,  705,  706,  708,  709,  710,  711,  711,  712,  711
  2945. ,  712,  713,  714,  721,  722,  722,  723,  726,  727,  727
  2946. ,  728,  728,  729,  729,  730,  730,  731,  733,  734,  735
  2947. ,  736,  736,  737,  737,  738,  737,  738,  738,  739,  749
  2948. ,  750,  749,  750,  749,  750,  760,  761,  760,  761,  763
  2949. ,  764,  767,  768,  778,  779,  779,  780,  780,  781,  781
  2950. ,  782,  782,  783,  782,  783,  792,  793,  793,  794,  793
  2951. ,  794,  795,  796,  796,  797,  799,  800,  801,  802,  802
  2952. ,  803,  803,  804,  808,  809,  812,  813,  813,  814,  814
  2953. ,  815,  816,  817,  816,  817,  816,  817,  816,  817,  816
  2954. ,  817,  816,  817,  816,  817,  816,  817,  816,  817,  818
  2955. ,  819,  819,  820,  820,  821,  823,  824,  824,  825,  835
  2956. ,  836,  846,  847,  849,  850,  850,  851,  861,  862,  862
  2957. ,  863,  864,  865,  876,  877,  876,  877,  877,  878,  878
  2958. ,  879,  878,  879,  883,  884,  883,  884,  883,  884,  883
  2959. ,  884,  903,  904,  903,  904,  903,  904,  903,  904,  903
  2960. ,  904,  903,  904,  903,  904,  903,  904,  903,  904,  903
  2961. ,  904,  903,  904,  903,  904,  903,  904,  903,  904,  903
  2962. ,  904,  903,  904,  903,  904,  903,  904,  906,  907,  908
  2963. ,  909,  908,  909,  908,  909,  908,  909,  908,  909,  908
  2964. ,  909,  908,  909,  908,  909,  908,  909,  909,  910,  910
  2965. ,  911,  910,  911,  910,  911,  911,  912,  911,  912,  911
  2966. ,  912,  911,  912,  922,  923,  922,  923,  922,  923,  923
  2967. ,  924,  924,  925,  925,  926,  926,  927,  927,  928,  928
  2968. ,  929,  929,  930,  930,  931,  930,  931,  931,  932,  932
  2969. ,  933,  932,  933,  932,  933,  932,  933,  932,  933,  933
  2970. ,  934,  934,  935,  934,  935,  934,  935,  937,  938,  937
  2971. ,  938,  937,  938,  937,  938,  948,  949,  949,  950,  960
  2972. ,  961,  960,  961,  960,  961,  961,  962,  961,  962,  986
  2973. ,  987, 1011, 1012, 1011, 1012, 1011, 1012, 1011, 1012, 1012
  2974. , 1013, 1012, 1013, 1013, 1014, 1024, 1025, 1025, 1026, 1037
  2975. , 1038, 1038, 1039, 1039, 1040, 1041, 1042, 1041, 1042, 1042
  2976. , 1043, 1046, 1047, 1046, 1047, 1047, 1048, 1048, 1049, 1059
  2977. , 1060, 1070, 1071, 1071, 1072, 1072, 1073, 1073, 1074, 1074
  2978. , 1075, 1076, 1077, 1077, 1078, 1077, 1078, 1077, 1078, 1077
  2979. , 1078, 1077, 1078, 1077, 1078, 1077, 1078, 1077, 1078, 1077
  2980. , 1078, 1077, 1078, 1077, 1078, 1078, 1079, 1079, 1080, 1079
  2981. , 1080, 1080, 1081, 1080, 1081, 1091, 1092, 1092, 1093, 1103
  2982. , 1104, 1104, 1105, 1105, 1106, 1106, 1107, 1106, 1107, 1107
  2983. , 1108, 1108, 1109, 1111, 1112, 1122, 1123, 1122, 1123, 1122
  2984. , 1123, 1122, 1123, 1122, 1123, 1122, 1123, 1123, 1124, 1124
  2985. , 1125, 1125, 1126, 1125, 1126, 1125, 1126, 1128, 1129, 1129
  2986. , 1130, 1130, 1131, 1131, 1132, 1142, 1143, 1142, 1143, 1145
  2987. , 1146, 1147, 1148, 1147, 1148, 1147, 1148, 1148, 1149, 1148
  2988. , 1149, 1148, 1149, 1150, 1151, 1150, 1151, 1151, 1152, 1159
  2989. , 1160, 1159, 1160, 1164, 1165, 1165, 1166, 1170, 1171, 1170
  2990. , 1171, 1181, 1182, 1182, 1183, 1208, 1209, 1208, 1209, 1208
  2991. , 1209, 1208, 1209, 1209, 1210, 1209, 1210, 1220, 1221, 1221
  2992. , 1222, 1221, 1222, 1222, 1223, 1224, 1225, 1225, 1226, 1225
  2993. , 1226, 1225, 1226, 1225, 1226, 1225, 1226, 1226, 1227, 1226
  2994. , 1227, 1226, 1227, 1237, 1238, 1237, 1238, 1237, 1238, 1237
  2995. , 1238, 1237, 1238, 1238, 1239, 1238, 1239, 1239, 1240, 1241
  2996. , 1242, 1241, 1242, 1241, 1242, 1241, 1242, 1242, 1243, 1244
  2997. , 1245, 1255, 1256, 1256, 1257, 1257, 1258, 1258, 1259, 1259
  2998. , 1260, 1263, 1264, 1263, 1264, 1264, 1265, 1264, 1265, 1264
  2999. , 1265, 1264, 1265, 1264, 1265, 1265, 1266, 1266, 1267, 1268
  3000. , 1269, 1268, 1269, 1268, 1269, 1268, 1269, 1269, 1270, 1269
  3001. , 1270, 1269, 1270, 1270, 1271, 1271, 1272, 1272, 1273, 1272
  3002. , 1273, 1272, 1273, 1272, 1273, 1272, 1273, 1272, 1273, 1272
  3003. , 1273, 1272, 1273, 1272, 1273, 1274, 1275, 1275, 1276, 1279
  3004. , 1280, 1279, 1280, 1279, 1280, 1280, 1281, 1281, 1282, 1282
  3005. , 1283, 1283, 1284, 1285, 1286, 1285, 1286, 1285, 1286, 1289
  3006. , 1290, 1290, 1291, 1291, 1292, 1292, 1293, 1294, 1295, 1305
  3007. , 1306, 1307, 1308, 1307, 1308, 1307, 1308, 1308, 1309, 1319
  3008. , 1320, 1319, 1320, 1319, 1320, 1321, 1322, 1321, 1322, 1321
  3009. , 1322, 1321, 1322, 1322, 1323, 1333, 1334, 1337, 1338, 1337
  3010. , 1338, 1337, 1338, 1337, 1338, 1337, 1338, 1337, 1338, 1337
  3011. , 1338, 1337, 1338, 1339, 1340, 1339, 1340, 1340, 1341, 1341
  3012. , 1342, 1341, 1342, 1342, 1343, 1343, 1344, 1343, 1344, 1343
  3013. , 1344, 1344, 1345, 1345, 1346, 1347, 1348, 1347, 1348, 1347
  3014. , 1348, 1348, 1349, 1348, 1349, 1350, 1351, 1350, 1351, 1350
  3015. , 1351, 1354, 1355, 1354, 1355, 1355, 1356, 1356, 1357, 1357
  3016. , 1358, 1359, 1360, 1359, 1360, 1360, 1361, 1371, 1372, 1371
  3017. , 1372, 1371, 1372, 1371, 1372, 1382, 1383, 1383, 1384, 1387
  3018. , 1388, 1387, 1388, 1391, 1392, 1393, 1394, 1394, 1395, 1395
  3019. , 1396, 1395, 1396, 1396, 1397, 1396, 1397, 1396, 1397, 1397
  3020. , 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1403, 1404, 1405
  3021. , 1406, 1405, 1406, 1405, 1406, 1405, 1406, 1405, 1406, 1405
  3022. , 1406, 1405, 1406, 1405, 1406, 1405, 1406, 1405, 1406, 1408
  3023. , 1409, 1408, 1409, 1435, 1436, 1436, 1437, 1436, 1437, 1436
  3024. , 1437, 1436, 1437, 1438, 1439, 1438, 1439, 1439, 1440, 1439
  3025. , 1440, 1450, 1451, 1451, 1452, 1451, 1452, 1451, 1452, 1452
  3026. , 1453, 1476, 1477, 1476, 1477, 1476, 1477, 1478, 1479, 1478
  3027. , 1479, 1478, 1479, 1479, 1480, 1479, 1480, 1479, 1480, 1480
  3028. , 1481, 1492, 1493, 1493, 1494, 1494, 1495, 1495, 1496, 1495
  3029. , 1496, 1495, 1496, 1496, 1497, 1496, 1497, 1496, 1497, 1497
  3030. , 1498, 1499, 1500, 1511, 1512, 1511, 1512, 1519, 1520, 1519
  3031. , 1520, 1520, 1521, 1520, 1521, 1520, 1521, 1521, 1522, 1522
  3032. , 1523, 1533, 1534, 1534, 1535, 1535, 1536, 1536, 1537, 1547
  3033. , 1548, 1548, 1549, 1548, 1549, 1549, 1550, 1550, 1551, 1550
  3034. , 1551, 1551, 1552, 1552, 1553, 1552, 1553, 1552, 1553, 1552
  3035. , 1553, 1554, 1555, 1564, 1565, 1564, 1565, 1564, 1565, 1575
  3036. , 1576, 1578, 1579, 1579, 1580, 1581, 1582, 1582, 1583, 1594
  3037. , 1595, 1594, 1595, 1594, 1595, 1594, 1595, 1595, 1596, 1596
  3038. , 1597, 1597, 1598, 1600, 1601, 1600, 1601, 1600, 1601, 1605
  3039. , 1606, 1605, 1606, 1606, 1607, 1617, 1618, 1617, 1618, 1618
  3040. , 1619, 1619, 1620, 1619, 1620, 1621, 1622, 1621, 1622, 1622
  3041. , 1623, 1625, 1626, 1625, 1626, 1626, 1627, 1626, 1627, 1626
  3042. , 1627, 1626, 1627, 1627, 1628, 1628, 1629, 1628, 1629, 1629
  3043. , 1630, 1629, 1630, 1629, 1630, 1630, 1631, 1631, 1632, 1636
  3044. , 1637, 1637, 1638, 1637, 1638, 1638, 1639, 1639, 1640, 1640
  3045. , 1641, 1640, 1641, 1641, 1642, 1641, 1642, 1642, 1643, 1643
  3046. , 1644, 1643, 1644, 1645, 1646, 1645, 1646, 1646, 1647, 1646
  3047. , 1647, 1647, 1648, 1649, 1650, 1650, 1651, 1650, 1651, 1651
  3048. , 1652, 1652, 1653, 1654, 1655, 1654, 1655, 1655, 1656, 1655
  3049. , 1656, 1659, 1660, 1659, 1660, 1660, 1661, 1660, 1661, 1661
  3050. , 1662, 1663, 1664, 1663, 1664, 1664, 1665, 1665, 1666, 1665
  3051. , 1666, 1665, 1666, 1665, 1666, 1666, 1667, 1666, 1667, 1668
  3052. , 1669, 1669, 1670, 1669, 1670, 1669, 1670, 1669, 1670, 1670
  3053. , 1671, 1671, 1672, 1671, 1672, 1671, 1672, 1672, 1673, 1672
  3054. , 1673, 1672, 1673, 1672, 1673, 1673, 1674, 1673, 1674, 1674
  3055. , 1675, 1674, 1675, 1676, 1677, 1677, 1678, 1677, 1678, 1679
  3056. , 1680, 1679, 1680, 1679, 1680, 1679, 1680, 1680, 1681, 1681
  3057. , 1682, 1682, 1683, 1682, 1683, 1682, 1683, 1694, 1695, 1694
  3058. , 1695, 1694, 1695, 1694, 1695, 1694, 1695, 1694, 1695, 1694
  3059. , 1695, 1694, 1695, 1695, 1696, 1697, 1698, 1698, 1699, 1698
  3060. , 1699, 1700, 1701, 1700, 1701, 1700, 1701, 1701, 1702, 1703
  3061. , 1704, 1704, 1705, 1704, 1705, 1704, 1705, 1705, 1706, 1706
  3062. , 1707, 1706, 1707, 1706)  ;
  3063.     
  3064.     Action_Token_Map : constant Action_Token_Array :=
  3065.          (   43,   65,   27,   54,   63,   26,   42,   43,   45,   71
  3066. ,   80,   54,   26,   27,   42,   45,   63,    3,   66,   68
  3067. ,   71,   74,   35,   36,   37,   65,   67,   76,   67,   65
  3068. ,   65,   11,   65,   71,   31,   80,   80,   80,   26,   45
  3069. ,   42,   65,   65,   39,   47,   49,   75,   76,   77,   83
  3070. ,   86,   87,   89,   90,   91,    7,   30,   34,   36,   64
  3071. ,   69,   70,   71,   72,   73,   74,   78,   81,   82,   84
  3072. ,   85,    3,   35,   37,   40,   65,   66,   67,   68,   71
  3073. ,   74,   76,   36,   72,   82,   83,   89,   91,   30,   36
  3074. ,   81,   86,   90,   47,   70,   71,   77,   75,   39,   64
  3075. ,    7,    7,   39,   64,    7,   39,   74,   76,   69,   34
  3076. ,   49,   73,   78,   87,   37,   68,   71,   35,   65,   66
  3077. ,   67,   37,   65,   71,    3,   35,   36,   66,   67,   68
  3078. ,   31,   51,   71,   59,   63,   65,   65,   31,   71,   65
  3079. ,   35,   43,   26,   27,   42,   44,   45,   56,   60,   21
  3080. ,   25,   55,   59,   65,   25,   26,   27,   42,   45,   56
  3081. ,   59,   60,   65,   55,   21,   10,   65,   67,   65,   65
  3082. ,   43,   60,   71,   77,   70,   85,   84,   85,   72,   75
  3083. ,   30,   36,   64,   75,    7,   39,   72,   81,   82,   83
  3084. ,   84,   85,   86,   89,   90,   91,   47,   70,   71,   77
  3085. ,   72,   75,   80,   30,    3,   37,   65,   68,   74,   35
  3086. ,   36,   66,   67,   71,   76,    3,   35,   36,   37,   68
  3087. ,   76,   65,   66,   67,   71,   74,    3,   67,   68,   71
  3088. ,   76,   35,   36,   37,   65,   66,   74,    3,   37,   67
  3089. ,   68,   71,   76,   35,   36,   65,   66,   74,   17,   16
  3090. ,   47,   65,   71,    3,   37,   71,   76,   35,   36,   65
  3091. ,   66,   67,   68,   74,    6,   65,   67,   68,    3,   35
  3092. ,   36,   37,   67,   74,   65,   66,   68,   71,   76,   75
  3093. ,    3,   71,   74,   76,   35,   36,   37,   58,   65,   66
  3094. ,   67,   68,    3,   19,   35,   66,   36,   37,   65,   67
  3095. ,   68,   71,   74,   76,    3,   65,   66,   76,   35,   36
  3096. ,   37,   67,   68,   71,   74,    3,   36,   65,   66,   71
  3097. ,   74,   76,   35,   37,   67,   68,   35,   36,   37,   65
  3098. ,   66,   67,   68,   74,   76,    3,   71,    3,   35,   67
  3099. ,   68,   76,   36,   37,   65,   66,   71,   74,   58,   19
  3100. ,   35,   37,   67,   71,    3,   36,   65,   66,   68,   36
  3101. ,   65,   66,   67,   68,   71,    3,   35,   37,   66,   67
  3102. ,   68,   71,   35,   37,   65,   70,   71,   77,   35,   65
  3103. ,   65,   65,   45,   26,   79,   31,   35,   65,   72,   77
  3104. ,   65,   10,   65,   67,   65,   65,   65,   67,   68,   65
  3105. ,   65,   59,   65,   65,   65,   79,   50,   31,   80,   80
  3106. ,   11,   65,   11,   59,   65,   50,   31,   80,   65,   80
  3107. ,   51,   71,   31,   75,   80,    3,   35,   65,   66,   68
  3108. ,   76,   36,   37,   67,   71,   74,   71,   65,   65,   76
  3109. ,    3,   35,   36,   37,   65,   66,   67,   68,   71,   74
  3110. ,   35,   36,   71,   74,   76,    3,   37,   65,   66,   67
  3111. ,   68,   35,   36,   37,   40,   65,   66,   67,   68,   71
  3112. ,   74,   76,    3,   74,   76,    3,   35,   36,   37,   65
  3113. ,   66,   67,   68,   71,   84,   85,    3,   35,   36,   37
  3114. ,   40,   65,   66,   67,   68,   71,   74,   76,   75,   86
  3115. ,   86,   72,   65,   65,   66,   67,   68,   71,   74,   76
  3116. ,    3,   35,   36,   37,   30,   89,   90,   36,   81,   82
  3117. ,   83,   91,    3,   35,   36,   37,   65,   66,   67,   68
  3118. ,   71,   74,   76,   35,   65,   74,    3,   36,   37,   66
  3119. ,   67,   68,   71,   76,    3,   35,   66,   67,   68,   71
  3120. ,   76,   36,   37,   65,   74,   65,   77,   79,   31,   71
  3121. ,   31,   75,   30,   65,   65,   26,   56,   42,   45,   71
  3122. ,   77,   80,   80,   71,   80,   60,   70,   71,   77,   60
  3123. ,   50,   31,   25,   26,   55,   59,   60,   65,   21,   27
  3124. ,   42,   45,   56,   31,   65,   31,   71,   80,   31,   77
  3125. ,    8,   13,   23,   65,   43,   35,   65,   67,   68,   65
  3126. ,   65,   43,   42,   45,   56,   26,   27,   60,   35,   54
  3127. ,   65,    4,   12,   14,   24,   25,   33,   51,   53,   65
  3128. ,   67,   68,    2,   10,   15,   28,   29,   37,   43,   46
  3129. ,   62,   92,   23,   21,   80,   65,   43,   72,   65,   66
  3130. ,   68,   76,    3,   35,   36,   37,   67,   71,   74,   65
  3131. ,   66,   67,   68,   71,   74,   76,    3,   35,   36,   37
  3132. ,   40,   68,    3,   35,   36,   37,   65,   66,   67,   71
  3133. ,   74,   76,   37,   65,   66,   67,   68,   74,   76,    3
  3134. ,   35,   36,   71,   37,    3,   35,   36,   65,   66,   67
  3135. ,   68,   71,   74,   76,   75,   71,   77,   80,   41,   30
  3136. ,   65,   80,   72,    8,   17,    5,   16,   32,   44,   47
  3137. ,   71,   65,   65,   68,   94,   67,   80,   65,   41,   88
  3138. ,   71,   77,   80,   80,   72,   11,   11,   31,    3,   35
  3139. ,   36,   65,   66,   67,   68,   71,   74,   76,   37,    3
  3140. ,   36,   65,   66,   68,   76,   35,   37,   67,   71,   74
  3141. ,   71,    9,   48,   47,   16,   17,   65,   36,   37,   68
  3142. ,   74,    3,   35,   65,   66,   67,   71,   76,   65,   65
  3143. ,   65,   31,    5,    8,   16,   17,   32,   44,   47,   71
  3144. ,   35,   48,   65,   75,   80,   71,   88,    8,   65,   50
  3145. ,   80,   88,   88,   16,   17,   47,   50,   71,   70,   71
  3146. ,   77,   80,   31,   31,   11,   65,   31,   80,   80,   80
  3147. ,   65,   67,   68,   65,   35,   36,   37,   65,   74,    3
  3148. ,   66,   67,   68,   71,   76,    3,   37,   67,   68,   35
  3149. ,   36,   65,   66,   71,   74,   76,   61,   65,   80,   65
  3150. ,    3,   37,   65,   66,   68,   71,   74,   76,   35,   36
  3151. ,   67,   80,   65,   80,    3,   36,   65,   66,   67,   68
  3152. ,   71,   74,   80,   35,   37,   76,   79,   65,   70,   71
  3153. ,   77,   88,   80,    2,    4,   10,   12,   15,   33,   37
  3154. ,   46,   51,   53,   62,   65,   68,   14,   24,   25,   28
  3155. ,   29,   67,   92,   25,   33,   62,   14,   10,   75,   86
  3156. ,   75,    3,   35,   36,   37,   65,   66,   67,   76,   68
  3157. ,   71,   74,   88,   51,   65,   65,   71,   94,   94,   44
  3158. ,   94,   94,   80,   79,   70,   71,   77,   37,   68,    3
  3159. ,   35,   36,   65,   66,   67,   71,   74,   76,   80,   35
  3160. ,   37,   68,   74,    3,   36,   65,   66,   67,   71,   76
  3161. ,   65,    7,   34,   49,   75,   30,   36,   39,   64,   69
  3162. ,   70,   71,   72,   73,   74,   76,   77,   78,   81,   82
  3163. ,   83,   85,   87,   89,   90,   91,   30,   34,   36,   64
  3164. ,   69,   70,   71,   72,   73,   77,   82,   83,   85,   87
  3165. ,   90,    7,   39,   49,   74,   75,   76,   78,   81,   89
  3166. ,   91,   85,   72,    3,   35,   36,   65,   66,   67,   68
  3167. ,   71,   37,   74,   76,    9,   37,   40,   66,   74,   76
  3168. ,    3,   35,   36,   65,   67,   68,   71,   80,   80,   77
  3169. ,   80,   80,   16,   17,   47,   71,   43,   22,   36,   71
  3170. ,   74,   76,    3,   35,   37,   65,   66,   67,   68,   35
  3171. ,   76,    3,   36,   37,   65,   66,   67,   68,   71,   74
  3172. ,   44,   65,   80,   37,   65,   68,   80,   47,   47,   65
  3173. ,    3,   36,   37,   65,   67,   74,   76,   35,   66,   68
  3174. ,   71,   38,   35,   36,   65,   66,   68,   71,    3,   37
  3175. ,   67,   74,   76,   88,   88,   65,   80,   80,   65,   67
  3176. ,   68,    3,   35,   36,   65,   74,   76,   37,   66,   67
  3177. ,   68,   71,   54,   54,   43,   71,   77,   70,   71,   31
  3178. ,   80,    3,   35,   36,   37,   67,   68,   71,   74,   65
  3179. ,   66,   76,   77,   61,   80,   77,   80,   58,   77,   80
  3180. ,   80,    4,   43,   57,   68,   15,   61,   65,   67,   10
  3181. ,   14,   25,   33,   62,   93,   17,   47,   16,   65,   71
  3182. ,    3,   35,   36,   37,   65,   66,   67,   68,   71,   76
  3183. ,   74,   43,    2,    4,   12,   14,   15,   19,   21,   25
  3184. ,   28,   29,   33,   39,   51,   67,   68,   10,   20,   23
  3185. ,   24,   37,   46,   53,   61,   62,   65,   92,   65,   35
  3186. ,   36,   37,   74,    3,   65,   66,   67,   68,   71,   76
  3187. ,   33,   65,   43,   61,   21,   65,    3,   66,   76,   35
  3188. ,   36,   37,   65,   67,   68,   71,   74,   72,   65,   72
  3189. ,   80,   31,   72,   75,    3,   35,   37,   65,   66,   67
  3190. ,   68,   71,   74,   76,   36,   80,   80,   34,   43,   65
  3191. ,   67,   68,   21,   75,   22,   65,   21,   25,   80,   80
  3192. ,   21,   43,   80,   72,   77,   47,   70,   71,   77,   65
  3193. ,   80,   80,   80,   77,   80,   70,   71,   77,   80,   72
  3194. ,   80,   80,   75,   80,    3,   35,   36,   37,   65,   66
  3195. ,   67,   74,   76,   68,   71,   18,   80,   80,    3,   35
  3196. ,   67,   71,   76,   36,   37,   65,   66,   68,   74,   19
  3197. ,   20,   80,    3,   37,   67,   68,   71,   35,   36,   65
  3198. ,   66,   74,   76,   70,   77,   80,   71,   19,   39,   80
  3199. ,   80,   30,   21,   65,   80,   65,   40,   61,   75,   72
  3200. ,   77,   47,   70,   71,   88,   31,   65,   75,   72,   80
  3201. ,   37,   66,   76,    3,   35,   36,   65,   67,   68,   71
  3202. ,   74,   35,   37,   66,   67,   74,   76,    3,   36,   65
  3203. ,   68,   71,   48,    9,   70,   71,   77,   21,   65,   67
  3204. ,   68,   21,   25,   71,   65,   43,   48,   65,   12,   72
  3205. ,   75,   31,   80,   72,   75,   67,   68,   65,    7,   30
  3206. ,   47,   49,   64,   69,   70,   72,   73,   75,   76,   77
  3207. ,   78,   79,   81,   82,   89,   91,   34,   36,   39,   71
  3208. ,   74,   83,   86,   87,   90,   72,   43,   61,   80,    3
  3209. ,   37,   71,   74,   35,   36,   65,   66,   67,   68,   76
  3210. ,   21,   85,   14,   15,   19,   21,   24,   25,   28,   29
  3211. ,   33,   37,   39,   43,   46,   51,   62,   65,   67,   92
  3212. ,    2,    4,   10,   12,   53,   68,   19,   39,   21,   43
  3213. ,   35,   36,   37,   52,   65,   66,   71,   74,   76,    3
  3214. ,   67,   68,   33,   21,   80,   77,   80,   75,   72,    3
  3215. ,   37,   65,   66,   67,   68,   71,   74,   35,   36,   76
  3216. ,   94,    5,    8,   32,   71,   16,   17,   44,   47,   80
  3217. ,   80,   80,   76,    3,   35,   36,   37,   65,   66,   67
  3218. ,   68,   71,   74,   43,   48,   65,   35,   36,   65,   66
  3219. ,   67,   68,   71,   76,    3,   37,   74,   80,   43,   43
  3220. ,   65,   79,   65,   68,    5,    8,   17,   35,   44,   47
  3221. ,   71,   16,   32,   48,   36,   66,   76,    3,   35,   37
  3222. ,   65,   67,   68,   71,   74,   70,   71,   77,   71,   80
  3223. ,   72,   21,   68,   74,   76,    3,   35,   36,   37,   40
  3224. ,   65,   66,   67,   71,   58,   29,   43,    4,   15,   57
  3225. ,   15,   43,   57,   61,    4,   53,   35,   36,   68,    3
  3226. ,   37,   65,   66,   67,   71,   74,   76,   65,   33,   84
  3227. ,   85,   38,   65,   67,   68,   80,   47,   80,   72,   31
  3228. ,   65,   12,   61,   65,   21,   43,   43,   44,   80,   80
  3229. ,   65,   65,   85,   21,   61,   80,   21,   15,   43,   80
  3230. ,   80,   65,   40,   65,   65,   47,   70,   71,   77,   80
  3231. ,   71,   80,   72,   88,   80,   80,   84,   85,   12,   53
  3232. ,   21,   80,   94,   65,   43,   61,   80,   72,   80,   80
  3233. ,   80,   53,   35,   37,   40,   65,   71,   74,   76,    3
  3234. ,   36,   66,   67,   68,   80,   72,   80,   85,   21,   61
  3235. ,   37,   84,   85,   12,   37,   80)  ;
  3236.         --| Action_Token_Map is an array that
  3237.         --| maps from each state (using action index map) to a set of
  3238.         --| action tokens. An action token is a terminal symbol
  3239.         --| (except EOF_Token) for which in the given state an
  3240.         --| explicit (non-default) shift or reduce action
  3241.         --| is defined.
  3242.         --| Used to cut reduce the
  3243.         --| number of primary recovery candidates.
  3244.     
  3245.     ------------------------------------------------------------------
  3246.     -- Shift_State_Map
  3247.     ------------------------------------------------------------------
  3248.     
  3249.     type Shift_State_Index_Array is array(
  3250.         PositiveParserInteger range <>) of GC.ParserInteger;
  3251.        --| For indexing the All Action Token Array.
  3252.        --| Maps a given state into the lower and upper bounds of a slice
  3253.        --| of the All Action Index Array.
  3254.  
  3255.     Shift_State_MapIndex : constant Shift_State_Index_Array :=
  3256.          (    1,    1,    2,    2,    3,    3,    4,    4,    5,    5
  3257. ,    6,    6,    7,    9,   10,   11,   12,   14,   15,   15
  3258. ,   16,   19,   20,   23,   24,   24,   25,   25,   26,   26
  3259. ,   27,   29,   30,   32,   33,   33,   34,   37,   38,   38
  3260. ,   39,   57,   58,   58,   59,   60,   61,   61,   62,   63
  3261. ,   64,   65,   66,   66,   67,   67,   68,   69,   70,   73
  3262. ,   74,   94,   95,   97,   98,  101,  102,  103,  104,  108
  3263. ,  109,  110,  111,  113,  114,  115,  116,  120,  121,  124
  3264. ,  125,  126,  127,  132,  133,  134,  135,  141,  142,  142
  3265. ,  143,  143,  144,  148,  149,  153,  154,  154,  155,  158
  3266. ,  159,  161,  162,  162,  163,  166,  167,  170,  171,  171
  3267. ,  172,  174,  175,  175,  176,  179,  180,  182,  183,  185
  3268. ,  186,  191,  192,  192,  193,  194,  195,  196,  197,  236
  3269. ,  237,  237,  238,  242,  243,  245,  246,  246,  247,  250
  3270. ,  251,  273,  274,  298,  299,  299,  300,  301,  302,  314
  3271. ,  315,  316,  317,  318,  319,  319,  320,  325,  326,  411
  3272. ,  412,  412,  413,  413,  414,  414,  415,  417,  418,  427
  3273. ,  428,  431,  432,  432,  433,  435,  436,  436,  437,  437
  3274. ,  438,  438,  439,  439,  440,  440,  441,  446,  447,  446
  3275. ,  447,  446,  447,  446,  447,  447,  448,  452,  453,  456
  3276. ,  457,  457,  458,  458,  459,  459,  460,  460,  461,  461
  3277. ,  462,  464,  465,  467,  468,  469,  470,  472,  473,  473
  3278. ,  474,  476,  477,  477,  478,  482,  483,  490,  491,  498
  3279. ,  499,  501,  502,  517,  518,  518,  519,  519,  520,  520
  3280. ,  521,  521,  522,  523,  524,  526,  527,  528,  529,  529
  3281. ,  530,  530,  531,  531,  532,  533,  534,  534,  535,  536
  3282. ,  537,  537,  538,  545,  546,  546,  547,  547,  548,  554
  3283. ,  555,  556,  557,  558,  559,  576,  577,  578,  579,  579
  3284. ,  580,  580,  581,  581,  582,  583,  584,  584,  585,  585
  3285. ,  586,  587,  588,  588,  589,  589,  590,  604,  605,  609
  3286. ,  610,  610,  611,  612,  613,  615,  616,  630,  631,  631
  3287. ,  632,  632,  633,  633,  634,  634,  635,  636,  637,  637
  3288. ,  638,  641,  642,  644,  645,  647,  648,  649,  650,  651
  3289. ,  652,  652,  653,  653,  654,  655,  656,  658,  659,  659
  3290. ,  660,  661,  662,  662,  663,  664,  665,  666,  667,  667
  3291. ,  668,  668,  669,  669,  670,  671,  672,  672,  673,  673
  3292. ,  674,  674,  675,  679,  680,  680,  681,  684,  685,  688
  3293. ,  689,  691,  692,  694,  695,  695,  696,  698,  699,  700
  3294. ,  701,  711,  712,  712,  713,  713,  714,  714,  715,  715
  3295. ,  716,  716,  717,  717,  718,  718,  719,  719,  720,  720
  3296. ,  721,  723,  724,  726,  727,  727,  728,  729,  730,  730
  3297. ,  731,  733,  734,  734,  735,  735,  736,  736,  737,  737
  3298. ,  738,  738,  739,  739,  740,  740,  741,  754,  755,  762
  3299. ,  763,  764,  765,  765,  766,  777,  778,  779,  780,  781
  3300. ,  782,  782,  783,  783,  784,  784,  785,  785,  786,  786
  3301. ,  787,  787,  788,  789,  790,  790,  791,  791,  792,  792
  3302. ,  793,  794,  795,  795,  796,  796,  797,  797,  798,  798
  3303. ,  799,  800,  801,  801,  802,  803,  804,  804,  805,  805
  3304. ,  806,  807,  808,  813,  814,  815,  816,  817,  818,  818
  3305. ,  819,  819,  820,  831,  832,  832,  833,  834,  835,  838
  3306. ,  839,  839,  840,  840,  841,  847,  848,  854,  855,  860
  3307. ,  861,  862,  863,  863,  864,  865,  866,  866,  867,  868
  3308. ,  869,  869,  870,  870,  871,  871,  872,  872,  873,  874
  3309. ,  875,  876,  877,  877,  878,  878,  879,  879,  880,  880
  3310. ,  881,  881,  882,  882,  883,  883,  884,  885,  886,  886
  3311. ,  887,  888,  889,  889,  890,  891,  892,  892,  893,  895
  3312. ,  896,  896,  897,  897,  898,  898,  899,  900,  901,  901
  3313. ,  902,  902,  903,  903,  904,  904,  905,  905,  906,  906
  3314. ,  907,  908,  909,  909,  910,  911,  912,  912,  913,  913
  3315. ,  914,  914,  915,  915,  916,  917,  918,  918,  919,  922
  3316. ,  923,  925,  926,  926,  927,  927,  928,  929,  930,  930
  3317. ,  931,  931,  932,  932,  933,  933,  934,  935,  936,  936
  3318. ,  937,  937,  938,  939,  940,  940,  941,  941,  942,  942
  3319.  ) ;
  3320.     
  3321.     Shift_State_Map : constant Shift_State_Array :=
  3322.          (    1,  408,   34,  409,  468,  253,  131,  134,  137,  387
  3323. ,  469,  503,  619,  791,  214,   76,  310,  311,  493,  410
  3324. ,  801,  914,  940,  388,  591,  411,  245,  470,  515,  246
  3325. ,  471,  516,  750,  264,  271,  755,  823,  756,  171,  215
  3326. ,  379,  449,  702,  719,  725,  730,  772,  793,  794,  820
  3327. ,  827,  831,  859,  891,  895,  916,  936,  629,  389,  450
  3328. ,  412,  172,  587,   13,   89,   14,  413,  414,  864,  112
  3329. ,  239,  362,  771,   80,  154,  163,  285,  307,  314,  320
  3330. ,  357,  359,  380,  382,  383,  494,  512,  554,  555,  667
  3331. ,  712,  784,  807,  882,  472,  517,  853,  588,  695,  830
  3332. ,  871,  143,  718,   35,  166,  275,  286,  518,   36,  113
  3333. ,   37,  415,  637,  653,  874,  132,  135,  138,  766,  824
  3334. ,  101,  776,  860,  929,  464,  487,   15,   90,  173,  204
  3335. ,  366,  396,    2,  169,  174,  473,  519,  605,  634,  854
  3336. ,  884,   16,  416,  124,  247,  474,  782,  903,  504,  520
  3337. ,  790,  800,  843,  144,  308,  378,  543,  547,  155,  417
  3338. ,  599,  828,  418,  868,  915,  927,   17,  406,  662,  663
  3339. ,  175,  176,  205,  367,  677,  261,  270,  674,  863,  157
  3340. ,  177,  301,  178,  375,  377,  563,  670,  678,  698,  815
  3341. ,  919,  589,   32,  158,  133,  136,    9,   38,   72,   77
  3342. ,   78,   93,   96,  102,  159,  162,  217,  220,  248,  254
  3343. ,  280,  290,  293,  295,  298,  300,  302,  303,  327,  328
  3344. ,  346,  381,  394,  395,  419,  452,  486,  495,  560,  578
  3345. ,  614,  640,  692,  724,  747,  848,   39,   40,   73,  255
  3346. ,  291,  496,   41,  256,  641,  139,  125,  224,  376,  579
  3347. ,   11,   42,   79,  126,  156,  164,  223,  358,  370,  373
  3348. ,  384,  462,  475,  490,  505,  521,  538,  548,  602,  665
  3349. ,  795,  857,  905,  111,  229,  234,  288,  344,  453,  466
  3350. ,  492,  617,  707,  709,  713,  733,  742,  780,  786,  805
  3351. ,  809,  812,  835,  858,  880,  906,  923,  933,  145,   43
  3352. ,  140,  129,  230,  235,  260,  321,  340,  361,  536,  714
  3353. ,  745,  806,  810,  836,   44,  141,  127,  225,  146,  283
  3354. ,  305,  353,  577,  609,  849,   12,   81,   82,   88,  238
  3355. ,  309,  319,  322,  371,  372,  374,  385,  451,  463,  467
  3356. ,  485,  491,  537,  544,  553,  557,  558,  564,  570,  571
  3357. ,  573,  580,  608,  612,  624,  625,  626,  627,  636,  644
  3358. ,  658,  659,  668,  671,  672,  675,  676,  710,  716,  717
  3359. ,  728,  729,  737,  738,  739,  740,  741,  743,  744,  746
  3360. ,  751,  753,  759,  768,  769,  775,  787,  808,  817,  832
  3361. ,  834,  839,  840,  841,  847,  877,  879,  885,  886,  894
  3362. ,  897,  898,  904,  909,  911,  917,  922,  925,  926,  932
  3363. ,  942,  114,  115,  116,  226,  335,  872,  227,  228,  336
  3364. ,  616,  822,  873,  889,  913,  934,  939,  117,  231,  342
  3365. ,  343,  148,  488,  540,  581,  118,  119,  120,  420,  688
  3366. ,  483,  603,  604,  606,  607,  837,    3,   45,  252,  324
  3367. ,  502,  661,  170,  421,  699,  920,  179,  180,  181,  182
  3368. ,  183,   18,  184,  397,   19,  185,  398,  186,  399,   20
  3369. ,  187,  400,  188,   21,  189,  401,  190,  160,  191,  278
  3370. ,  481,  802,  390,  510,  541,  601,  635,  736,  883,  902
  3371. ,  489,  545,  546,  598,  655,  656,  783,  908,  391,  476
  3372. ,  542,   46,  103,  329,  330,  331,  337,  457,  497,  561
  3373. ,  567,  574,  611,  623,  654,  690,  748,  282,  192,  193
  3374. ,  194,  522,  855,  482,  535,  785,  610,  648,  523,  524
  3375. ,  525,  477,  526,  527,  478,  528,  529,   97,  276,  363
  3376. ,  392,  465,  511,  704,  708,  549,   98,  128,  232,  530
  3377. ,  550,  645,  734,  878,  531,  551,  532,  552,   47,  104
  3378. ,  240,  241,  243,  244,  262,  334,  455,  460,  461,  507
  3379. ,  562,  618,  632,  633,  789,  842,  642,  852,  732,  643
  3380. ,  533,  646,  647,  534,  479,  705,  875,  781,  539,   48
  3381. ,  105,  151,  296,  393,  422,  484,  559,  650,  660,  679
  3382. ,  706,  720,  811,  876,  651,  829,  845,  856,  869,  735
  3383. ,  242,  652,  638,  938,  941,   83,   94,  306,  312,  323
  3384. ,  513,  556,  620,  639,  727,  792,  798,  799,  850,  851
  3385. ,  731,  803,  804,  907,  921,  937,  931,  106,  456,  861
  3386. ,  930,  233,  890,  935,   84,   85,  299,   86,  167,  206
  3387. ,  402,  313,  195,  196,  726,  197,  222,  403,  404,  207
  3388. ,  368,  208,   22,  209,   23,  210,  211,   49,   50,   51
  3389. ,  297,  257,  249,  107,   52,  250,  325,  506,  689,  108
  3390. ,  236,  341,  595,  596,  109,  332,  338,  459,  237,  454
  3391. ,  458,  110,  333,  339,   53,   54,  258,  347,  130,  345
  3392. ,   55,  263,  265,  266,  267,  268,  269,  348,  349,  350
  3393. ,  351,   56,   57,   58,   59,   60,  121,  122,   61,   62
  3394. ,   63,  153,  272,   64,  152,  274,  149,   65,  273,   66
  3395. ,   67,  251,  326,   68,   69,  123,  142,   70,  147,  150
  3396. ,   99,  165,  277,  289,  304,  352,  364,  508,  565,  566
  3397. ,  572,  649,  657,  777,  316,  575,  582,  761,  770,  821
  3398. ,  825,  867,  423,  691,  583,  317,  693,  758,  762,  773
  3399. ,  814,  818,  866,  893,  901,  912,  924,  424,  584,  425
  3400. ,  585,  426,  427,  428,  429,  430,  431,  432,  680,  433
  3401. ,  434,  435,  436,  681,  437,  438,  439,  440,  441,  682
  3402. ,  442,  443,  586,  568,  673,  757,  767,  569,  669,  694
  3403. ,  754,  760,  819,  593,  752,  816,  892,  862,  444,  218
  3404. ,  294,  318,  407,  509,  697,  774,  797,  844,  870,  888
  3405. ,  899,  590,  216,  592,   87,  168,  315,  696,  594,  445
  3406. ,   24,   91,  198,  212,  281,  369,  405,  279,  287,  600
  3407. ,  749,  846,  887,  918,  356,  365,  813,  881,  910,  928
  3408. ,   74,  219,  354,  284,  355,  292,   25,   92,   26,   27
  3409. ,  386,  199,  514,  628,  630,  723,  213,  796,  631,  666
  3410. ,  446,  447,  448,  576,  826,  687,  683,  865,  684,  685
  3411. ,  896,  686,  763,  764,  765,  664,    4,    5,    6,   10
  3412. ,    7,   28,   29,    8,  221,   33,  778,  900,  833,  700
  3413. ,  779,   30,   31,   75,  161,  480,  838,  360,  498,  597
  3414. ,  613,  788,  615,  703,  711,  499,  500,  501,  715,  200
  3415. ,  201,  202,  203,  621,  722,  622,  721,   71,  259,  100
  3416. ,  701,   95)  ;
  3417.         --| Shift_State_ is an array that
  3418.         --| maps from non-terminals (using shift index map) to sets
  3419.         --| of states in which
  3420.         --| a shift to the non-terminal is defined.
  3421.         --| Used to determine the number of trials in primary
  3422.         --| error recovery.
  3423.  
  3424.     ------------------------------------------------------------------
  3425.     -- Subprogram Bodies Global to Package ErrorParseTables
  3426.     ------------------------------------------------------------------
  3427.  
  3428.     function Get_Action_Token_Map ( --| return the array of action tokens
  3429.                     --| for the state passed in.
  3430.         In_Index : in StateRange
  3431.                     --| the state to return action tokens
  3432.                     --| for.
  3433.         )
  3434.         return Action_Token_Record
  3435.         is
  3436.         --| Returns
  3437.         --| This subprogram returns the action token record for the
  3438.         --| state passed in.
  3439.         Result : Action_Token_Record ;
  3440.         LowerBound, UpperBound : GC.ParserInteger ;
  3441.         --| Lower and upper bounds of the slice of Action Token Map
  3442.     begin
  3443.         LowerBound := Action_Token_MapIndex ( In_Index*2 - 1 ) ;
  3444.         UpperBound := Action_Token_MapIndex ( In_Index*2 ) ;
  3445.  
  3446.         Result.set_size := UpperBound - LowerBound + 1;
  3447.         Result.set := (others => DefaultValue) ;
  3448.         Result.set(Result.set'first .. Result.set_size) :=
  3449.         Action_Token_Map(LowerBound..UpperBound) ;
  3450.       
  3451.         return Result ;
  3452.     end Get_Action_Token_Map ;
  3453.  
  3454.     ------------------------------------------------------------------
  3455.  
  3456.     function Get_Shift_State_Map (  --| return the array of shift states
  3457.                     --| for the grammar symbol passed in.
  3458.         In_Index : in GrammarSymbolRange
  3459.                     --| the grammar symbol to return shifts
  3460.                     --| for.
  3461.         )
  3462.         --| Raises: This subprogram raises no exceptions.
  3463.         return Shift_State_Record
  3464.         --| Returns
  3465.         --| This subprogram returns the array of shift states for the
  3466.         --| grammar symbol passed in.
  3467.         is
  3468.         
  3469.         Result : Shift_State_Record ;
  3470.         LowerBound, UpperBound : GC.ParserInteger ;
  3471.           --| Lower and upper bounds of the slice of Shift State Map
  3472.     begin
  3473.         LowerBound := Shift_State_MapIndex ( In_Index*2 - 1 ) ;
  3474.         UpperBound := Shift_State_MapIndex ( In_Index*2 ) ;
  3475.     
  3476.         Result.set_size := UpperBound - LowerBound + 1;
  3477.         Result.set := (others => DefaultValue) ;
  3478.         Result.set(Result.set'first .. Result.set_size) :=
  3479.             Shift_State_Map(LowerBound..UpperBound) ;
  3480.       
  3481.         return Result ;
  3482.     end Get_Shift_State_Map ;
  3483.  
  3484.     function Get_Grammar_Symbol (   --| return the string representation
  3485.                     --| of the grammar symbol
  3486.         In_Index : in GrammarSymbolRange
  3487.         )
  3488.         return string
  3489.         is
  3490.         LowerBound, UpperBound : GC.ParserInteger ;
  3491.       --| Lower and upper bounds of the slice of Shift State Map
  3492.     begin
  3493.         LowerBound := GrammarSymbolTableIndex ( In_Index*2 - 1 ) ;
  3494.         UpperBound := GrammarSymbolTableIndex ( In_Index*2 ) ;
  3495.  
  3496.         return GrammarSymbolTable(
  3497.             Integer(LowerBound) .. Integer(UpperBound)) ;
  3498.     end Get_Grammar_Symbol ;
  3499.  
  3500.     ------------------------------------------------------------------
  3501.  
  3502.     function Get_Follow_Map (       --| return the array of follow symbols
  3503.                     --| of the grammar symbol passed in
  3504.         In_Index : in FollowMapRange
  3505.         )
  3506.         -- |
  3507.         -- |Raises: This subprogram raises no exceptions.
  3508.         -- |
  3509.     
  3510.       return FollowSymbolRecord
  3511.       is
  3512.         Result : FollowSymbolRecord ;
  3513.         LowerBound, UpperBound : GC.ParserInteger ;
  3514.         Adjusted_Index : GC.ParserInteger :=
  3515.           (In_Index - FollowMapRange'first) + 1;
  3516.     begin
  3517.         LowerBound := FollowSymbolMapIndex ( Adjusted_Index*2 - 1 ) ;
  3518.         UpperBound := FollowSymbolMapIndex ( Adjusted_Index*2 ) ;
  3519.     
  3520.         Result.follow_symbol_count := UpperBound - LowerBound + 1;
  3521.         Result.follow_symbol := (others => DefaultValue) ;
  3522.         Result.follow_symbol(
  3523.           Result.follow_symbol'first ..
  3524.           Result.follow_symbol_count) :=
  3525.             FollowSymbolMap(LowerBound..UpperBound) ;
  3526.           
  3527.         return Result ;
  3528.     end Get_Follow_Map ;
  3529.  
  3530.     ------------------------------------------------------------------
  3531.  
  3532.     function GetAction (            -- see subprogram declaration
  3533.       InStateValue  : in StateRange;
  3534.       InSymbolValue : in GrammarSymbolRange
  3535.       )
  3536.       return ActionRange
  3537.       is
  3538.         
  3539.         Unique : GC.ParserInteger;
  3540.             --| unique value to hash for Index.
  3541.         Index  : GC.ParserInteger;
  3542.             --| index into Action Tables.
  3543.         Action : GC.ParserInteger;
  3544.             --| value from Action Tables.
  3545.         CollisionCount : Natural := 0 ; --| Number of collisions.
  3546.     begin -- GetAction function
  3547.     --| Algorithm
  3548.     --|-
  3549.     --| Definitions of key objects from package ParseTables:
  3550.     --|
  3551.     --| ActionCount: the number of actions in the action tables.
  3552.     --|
  3553.     --| ActionTableOne: table of action values for all combinations of
  3554.     --|     states and input actions.
  3555.     --|
  3556.     --| ActionTableTwo: hash values to check against to verify that action
  3557.     --|     value at same index in ActionTableOne is correct one.
  3558.     --|
  3559.     --| ActionTableSize: last index in ActionTableOne and ActionTableTwo
  3560.     --|     before the hash collision chains.
  3561.     --|
  3562.     --| DefaultMap: default action for each state.
  3563.     --|+
  3564.     --| The action to be returned is computed from parameters InStateValue
  3565.     --| and InSymbolValue. First, determine the unique single value:
  3566.     --|
  3567.     --|     Unique := (InStateValue * GrammarSymbolCountPlusOne) +
  3568.     --|                InSymbolValue;
  3569.     --|
  3570.     --| Unique is hashed by reducing modulo ActionTableSize and adding 1:
  3571.     --|
  3572.     --|     Index := (Unique mod ActionTableSize) + 1;
  3573.     --|
  3574.     --| This hash value, Index, is used to index ActionTableOne to
  3575.     --| obtain an Action:
  3576.     --|
  3577.     --|     Action := ActionTableOne(Index);
  3578.     --|
  3579.     --| Action is then used to determine the return value:
  3580.     --|
  3581.     --| Action = 0:
  3582.     --|     return DefaultMap(InStateValue);
  3583.     --|
  3584.     --| Action < ActionCount:
  3585.     --|     if (Unique = ActionTableTwo(Index)) then
  3586.     --|         return Action;
  3587.     --|     else
  3588.     --|         return DefaultMap(InStateValue);
  3589.     --|     end if;
  3590.     --|
  3591.     --| Action >= ActionCount:
  3592.     --|     --Search the hash collision chain
  3593.     --|     Index := Action - ActionCount;
  3594.     --|     while (Action /= 0) loop
  3595.     --|         Index := Index + 1;
  3596.     --|         Action := ActionTableTwo(Index);
  3597.     --|         if (Action = Unique) then
  3598.     --|             return ActionTableOne(Index);
  3599.     --|         end if;
  3600.     --|     end loop;
  3601.     --|     return DefaultMap(InStateValue);
  3602.  
  3603.     ------------------------------------------------------------------
  3604.  
  3605.   --| The actual code used folds this algorithm into a more efficient one:
  3606.         ParserDecisionCount := Natural'succ(ParserDecisionCount) ;
  3607.                                                                     
  3608.         Unique := (InStateValue * GrammarSymbolCountPlusOne) +          
  3609.                         InSymbolValue;                                  
  3610.         Index := (Unique mod ActionTableSize) + 1;                      
  3611.         Action := ActionTableOne(Index);                                
  3612.                                                                         
  3613.         if (Action >= ActionCount) then                                 
  3614.             Index := Action - ActionCount + 1;                          
  3615.             while ( (ActionTableTwo(Index) /= Unique) and then          
  3616.                     (ActionTableTwo(Index) /= 0) ) loop                 
  3617.                 Index := Index + 1;
  3618.             CollisionCount := Natural'succ(CollisionCount) ;
  3619.             end loop;                                                   
  3620.             Action := ActionTableOne(Index);                            
  3621.         end if;
  3622.         
  3623.         -- Collect statistics information.
  3624.         TotalCollisions := CollisionCount + TotalCollisions ;
  3625.         if CollisionCount > MaxCollisions then
  3626.             MaxCollisions := CollisionCount ;
  3627.         end if;
  3628.                                                                         
  3629.         if (ActionTableTwo(Index) /= Unique) then                       
  3630.             return DefaultMap(InStateValue);                            
  3631.         else                                                            
  3632.             return Action;                                              
  3633.         end if;                                                         
  3634.     
  3635.     end GetAction; -- function
  3636.  
  3637.     function Get_LeftHandSide(
  3638.       GrammarRule : LeftHandSideRange
  3639.       ) return GrammarSymbolRange is
  3640.     begin
  3641.         return LeftHandSide(GrammarRule) ;
  3642.     end Get_LeftHandSide ;
  3643.     
  3644.     function Get_RightHandSide(
  3645.       GrammarRule : RightHandSideRange
  3646.       ) return GC.ParserInteger is
  3647.     begin
  3648.         return RightHandSide(GrammarRule) ;
  3649.     end Get_RightHandSide ;
  3650.     
  3651. end ParseTables;
  3652.  
  3653. ----------------------------------------------------------------------
  3654. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  3655. --SPUTILS.SPC
  3656. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  3657. with Host_Dependencies;
  3658. with ParserDeclarations;
  3659. with Stack_Pkg;
  3660. with String_Pkg;
  3661.  
  3662. package Stmt_Profile_Utilities is
  3663.  
  3664.     package HD renames Host_Dependencies;
  3665.     package PD renames ParserDeclarations;
  3666.  
  3667. type ReportStatementKind  is
  3668.     (abort_stmt,      accept_stmt,     assignment_stmt, basic_decl,
  3669.      block_stmt,      case_stmt,       code_stmt,       delay_stmt,
  3670.      else_stmt,       elsif_stmt,      entry_call,      except_handler,
  3671.      exit_stmt,       goto_stmt,       if_stmt,         long_comment,
  3672.      loop_stmt,       null_stmt,       pragma_stmt,     procedure_call,
  3673.      raise_stmt,      return_stmt,     select_stmt,     short_comment,
  3674.      use_stmt,        with_stmt,       allstmts);
  3675.  
  3676. type ReportArray is              --| array of statement counters
  3677.     array (ReportStatementKind) of INTEGER;
  3678.  
  3679. type GroupArray  is              --| array of booleans to determine group
  3680.     array (ReportStatementKind) of BOOLEAN;
  3681.  
  3682. type Report_Type is (RAW,TABLE); --| Type of report requested
  3683.  
  3684.     type ItemType is
  3685.          record
  3686.        Call_Stmt    : INTEGER;
  3687.        Unit_Name    : PD.Source_Text;
  3688.        Report_Count : ReportArray;
  3689.          end record;
  3690.  
  3691.     package ST is new Stack_Pkg(ItemType);
  3692.  
  3693.     package SP renames String_Pkg;
  3694.  
  3695.  
  3696. Max_Count_Width  : constant INTEGER := 7;
  3697.     -- This is the maximum width of a statement count.
  3698.  
  3699. Max_Stmt_Type_Size : constant INTEGER := 15;
  3700.     -- This is the maximum length of an element in ReportStatementKind.
  3701.  
  3702.  
  3703. --| This section provides stack manipulation with the use of a
  3704. --| singly linked list with elements of type
  3705. --| ItemType.
  3706.  
  3707. --| Notes
  3708.  
  3709. --|                           Exceptions
  3710. --|                           ----------
  3711.  
  3712.     EmptyStack       :exception;     --| Raised if an attemp is made to manipulate
  3713.                                      --| an empty list.
  3714.  
  3715. --|                           Operations
  3716. --|                           ---------- 
  3717.  
  3718. ------------------------------------------------------------------------------
  3719. --  Declarations of global variables for Statement Profile
  3720. ------------------------------------------------------------------------------
  3721.  
  3722.     Source_File_Name : SP.String_Type;
  3723.             --| Name of the input file
  3724.     Previous_Line : HD.Source_Line := 0;
  3725.                     --| Holds previous file line number for determining
  3726.                     --| length of comments, used in
  3727.                     --| Lex.GetNextNonCommentToken.
  3728.     Profile_Spec  : SP.String_Type;
  3729.                     --| Holds user specifications for report.
  3730.     Group_One     : GroupArray := (ReportStatementKind => FALSE);
  3731.                     --| Statement types in group one.
  3732.     Group_Two     : GroupArray := (ReportStatementKind => FALSE);
  3733.                     --| Statement types in group two.
  3734.     Report_Format : Report_Type;
  3735.                     --| Type of report requested (Raw or Table)
  3736.     Stack_Info    : ItemType;
  3737.                     --| Holds current stack information.  Used by grammar
  3738.                     --| and ReduceActions.apply_red.
  3739.     Subunit_Stack : ST.Stack;
  3740.                     --| Holds current stack pointer
  3741.     call_stmt     : INTEGER := 0;
  3742.                     --| Holds current number of call statements to
  3743.                     --| determine Procedure_call and entry_call values.
  3744.                     --| used in grammar and by ReduceActions.apply_red.
  3745.     Zero_Report_Count : ReportArray := (others => 0);
  3746.                     --| Empty Report_Count array, for easy zeroing at
  3747.                     --| opening of a new unit.
  3748.     Total_Report_Count: ReportArray := Zero_Report_Count;
  3749.                     --| Grand totals for source file
  3750.     Identifier    : PD.Source_Text;
  3751.                     --| Identifier for current subunit
  3752.     Ident_Flag    : BOOLEAN := FALSE;
  3753.                     --| flag to mark identifier  (see getnext.sub)
  3754.  
  3755. -------------------------------------------------------------------------
  3756. -- Procedures for stack operations
  3757. -------------------------------------------------------------------------
  3758.  
  3759. procedure Push_Stack;        --| Makes Element first item in stack Stk.
  3760.  
  3761. --| Effects
  3762. --| This prepends stack Stk with Element.
  3763. --|
  3764. --| Modifies
  3765. --| This adds Element to the beginning of the stack Stk.
  3766.  
  3767. -------------------------------------------------------------------------
  3768. -- Procedures for creating reports
  3769. -------------------------------------------------------------------------
  3770.  
  3771. --|                           Exceptions
  3772. --|                           ----------
  3773.  
  3774.     REPORT_ERROR     :exception;     --| Raised if a nonexisting statement
  3775.                                      --| type is specified.
  3776.  
  3777.  
  3778.  
  3779. procedure Put_Fully_Qualified_Name;
  3780. --| Reads through Subunit_Stack and puts out all back identifiers.
  3781.  
  3782.  
  3783. procedure Process_Profile_Spec;
  3784. --| Parse profile spec for report and return group arrays and report type.
  3785.     --| Raises: REPORT_ERROR
  3786.  
  3787. --| Effects
  3788. --| The specification for the report is read from Profile_Spec, the
  3789. --| the group tobe the denominator is returned in Group_Denom, the
  3790. --| group to be the numerator is returned in Group_Numer, and the type
  3791. --| of report required is returned in Report_Format.
  3792.  
  3793. --| Modifies: Group_Denom, Group_Numer, Report_Format
  3794. --| N/A: Errors,Requires
  3795.  
  3796.  
  3797.  
  3798. procedure RawReport(
  3799. --| Produces a one line output of the raw data from the Statement Profile.
  3800.                     Report_Count : in ReportArray
  3801.                    );
  3802.  
  3803. --| Effects:
  3804. --| Generates an output of the raw counts so that the user can do his/her
  3805. --| own calculations.  
  3806.  
  3807. --| N/A: Modifies, Errors, Requires
  3808.  
  3809. procedure TableReport(
  3810. --| Produces a table containing the results from the Statement Profile
  3811. --| and ratios and sums of the two specified groups.
  3812.                       Report_Count : in ReportArray
  3813.                      );
  3814.  
  3815. --| Effects:
  3816. --| Generates a table for output from the counts in Repoert_Count,
  3817.  
  3818. --| N/A: Modifies, Errors, Requires
  3819.  
  3820. procedure Put_Grand_Total;
  3821.  
  3822.  
  3823. procedure Report_Statements;
  3824. --| Determines the correct type of report to be produced.
  3825.  
  3826. --| Effects
  3827. --| Call ProcessProfileSpec and from the results, determine the correct
  3828. --| type of output, and call the appropriate reporting procedure.
  3829.  
  3830. --| N/A: Modifies, Errors, Requires
  3831.  
  3832.  
  3833. -------------------------------------------------------------------------
  3834. --| The following subprograms are used in the actions file along with the
  3835. --| stack operations.
  3836. -------------------------------------------------------------------------
  3837.  
  3838. procedure Increment_Report_Count(StmtKind : in ReportStatementKind) ;
  3839.  
  3840. procedure Report_and_Pop_Stack;
  3841.  
  3842. procedure Add_and_Pop_Stack;
  3843.  
  3844. end Stmt_Profile_Utilities;
  3845. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  3846. --SPUTILS.BDY
  3847. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  3848. with TEXT_IO;
  3849. with Paginated_Output;
  3850. with String_Scanner;
  3851.  
  3852. package body Stmt_Profile_Utilities is
  3853.  
  3854.     use Paginated_Output;
  3855.     package INT_IO  is new TEXT_IO.INTEGER_IO (integer);
  3856.     package ENUM_IO is new TEXT_IO.ENUMERATION_IO (ReportStatementKind);
  3857.     package SS renames String_Scanner;
  3858.  
  3859.     Enum_String : string (1 .. Max_Stmt_Type_Size);
  3860.     Int_String  : string (1 .. Max_Count_Width);
  3861.  
  3862. --------------------------------------------------------------------------
  3863. --     Constant strings for use with Table Reports
  3864. --------------------------------------------------------------------------
  3865.  
  3866.     Header        : constant STRING :=
  3867.         "Statement            #       %     group1  group2      graph";
  3868.     Separator     : constant STRING :=
  3869. "--------------------------------------------------------------------------";
  3870.  
  3871. --------------------------------------------------------------------------
  3872. -- Procedures for stack operations
  3873. --------------------------------------------------------------------------
  3874.  
  3875. procedure Init_Stack_Element is
  3876.  
  3877.     begin
  3878.  
  3879.     Stack_Info.Report_Count := Zero_Report_Count;
  3880.     Stack_Info.Call_Stmt    := 0;
  3881.     Stack_Info.Unit_Name    := Identifier;
  3882.  
  3883.     end Init_Stack_Element;
  3884.  
  3885. procedure Push_Stack is
  3886.  
  3887.     begin
  3888.  
  3889.     ST.Push(Subunit_Stack, Stack_Info);
  3890.     Init_Stack_Element;
  3891.  
  3892.     end Push_Stack;
  3893.  
  3894. --------------------------------------------------------------------------
  3895. --  Procedures providing operations for producing reports
  3896. --------------------------------------------------------------------------
  3897.  
  3898. procedure Put_Fully_Qualified_Name is
  3899.  
  3900.     stk   : ST.Stack;
  3901.     x     : Integer := 0;
  3902.  
  3903.     begin
  3904.     stk := ST.Copy(Subunit_Stack);
  3905.     declare
  3906.         Names : array (1 .. ST.Size(stk)) of ItemType;
  3907.     begin
  3908.         while not ST.Is_Empty(stk) loop
  3909.         x := x + 1;
  3910.         ST.Pop(stk, Names(x));
  3911.         end loop;
  3912.         ST.Destroy(stk);
  3913.  
  3914.         for i in reverse 1 .. x - 1 loop
  3915.         Put(PD.Get_Source_Text(Names(i).Unit_Name));
  3916.         Put('.');
  3917.         end loop;
  3918.     end;
  3919.         Put(PD.Get_Source_Text(Stack_Info.Unit_Name));
  3920.         Space_Line;
  3921.  
  3922.     end Put_Fully_Qualified_Name;
  3923.  
  3924.  
  3925. procedure Put_Integer(X : integer) is
  3926.  
  3927.     str : integer;
  3928.  
  3929. begin
  3930.  
  3931.     INT_IO.Put(Int_String, X);
  3932.     for i in reverse Int_String'range loop
  3933.         if Int_String(i) = ' ' then
  3934.         str := i + 1;
  3935.         exit;
  3936.         end if;
  3937.     end loop;
  3938.     Put(' ' & Int_String(str .. Int_String'last));
  3939.  
  3940. end Put_Integer;
  3941.  
  3942.  
  3943. procedure Process_Profile_Spec is
  3944.  
  3945. --| Parse profile spec for report and return group arrays and report type.
  3946. --| Raises: REPORT_ERROR;
  3947.  
  3948. --| Effects
  3949. --| The specification for the report is read from Profile_Spec, the
  3950. --| the first group is returned in Group_One, the second group is returned 
  3951. --| in Group_Two, and the type of report required is returned 
  3952. --| in Report_Format.
  3953.  
  3954. --| Modifies: Group_One, Group_Two, Report_Format
  3955. --| N/A: Errors,Requires
  3956.  
  3957.  
  3958.         stmt : ReportStatementKind;
  3959.         stmt_string : SP.String_Type;
  3960.     scan : SS.Scanner;
  3961.     s1 : SP.String_Type;
  3962.     s2 : SP.String_Type;
  3963.     found : boolean;
  3964.     c : character;
  3965.  
  3966.  
  3967.         procedure Get_Statement_Type(S : in SS.Scanner; G : in out GroupArray) is
  3968.  
  3969.     begin
  3970.         while SS.More(S) loop            
  3971.         SS.Skip_Space(S);
  3972.         exit when not SS.More(S);
  3973.         SS.Scan_Ada_Id(S, Found, stmt_string);
  3974.         if not Found then
  3975.             raise Report_Error;
  3976.         end if;
  3977.         stmt := ReportStatementKind'VALUE(SP.Value(stmt_string));
  3978.         if stmt = allstmts then
  3979.             for stmt_type in ReportStatementKind loop
  3980.             G(stmt_type) := TRUE;
  3981.             end loop;
  3982.         else
  3983.             G(stmt) := TRUE;
  3984.         end if;
  3985.         SS.Skip_Space(S);
  3986.         exit when not SS.More(S);
  3987.         SS.Next(S, c);
  3988.         if c /= ',' then
  3989.             raise Report_Error;
  3990.         end if;
  3991.         end loop;
  3992.  
  3993.     exception
  3994.     -- CONSTRAINT_ERROR is handled here to raise REPORT_ERROR
  3995.         when CONSTRAINT_ERROR =>
  3996.         raise REPORT_ERROR;
  3997.  
  3998.     end Get_Statement_Type;
  3999.  
  4000.  
  4001.     begin
  4002.  
  4003.     Scan := SS.Make_Scanner(Profile_Spec);
  4004.     SS.Skip_Space(Scan);
  4005.     if not SS.More(Scan) then
  4006.         SS.Destroy_Scanner(Scan);
  4007.         return;
  4008.     end if;
  4009.     SS.Mark(Scan);
  4010.     SS.Next(Scan, c);
  4011.     if c /= ':' then
  4012.         SS.Restore(Scan);
  4013.         SS.Scan_Not_Literal(":", Scan, Found, S1);
  4014.         if Found then
  4015.         S2 := SS.Get_Remainder(Scan);
  4016.         if SP.Length(S2) > 1 then
  4017.             S2 := SP.Substr(S2, 2, SP.Length(S2) - 1);
  4018.         else
  4019.             S2 := SP.Create("");
  4020.         end if;
  4021.         SS.Destroy_Scanner(Scan);
  4022.         Scan := SS.Make_Scanner(S1);
  4023.         else
  4024.         S2 := SP.Create("");
  4025.         end if;
  4026.         Get_Statement_Type(Scan, Group_One);
  4027.         SS.Destroy_Scanner(Scan);
  4028.         Scan := SS.Make_Scanner(S2);
  4029.     end if;
  4030.     SS.Skip_Space(Scan);
  4031.     if SS.More(Scan) then
  4032.         Get_Statement_Type(Scan, Group_Two);
  4033.         SS.Destroy_Scanner(Scan);
  4034.     end if;
  4035.  
  4036.     end Process_Profile_Spec;
  4037.             
  4038.  
  4039. procedure RawReport(
  4040. --| Produces a one line output of the raw data from the Statement Profile.
  4041.                     Report_Count : in ReportArray
  4042.                    ) is
  4043.  
  4044. --| Effects:
  4045. --| Generates an output of the raw counts so that the user can do his/her
  4046. --| own calculations.  
  4047.  
  4048. --| N/A: Modifies, Errors, Requires
  4049.  
  4050.     total         : INTEGER := 0;
  4051.     g_1_total     : INTEGER := 0;
  4052.     g_2_total     : INTEGER := 0;
  4053.  
  4054. begin
  4055.  
  4056.     Put(Source_File_Name);
  4057.     Space(1);
  4058.     Put_Fully_Qualified_Name;
  4059.  
  4060.     for stmt_type in ReportStatementKind loop
  4061.     exit when stmt_type = AllStmts;
  4062.         total := total + Report_Count(stmt_type);
  4063.     if Group_One(stmt_type) then
  4064.         g_1_total := g_1_total + Report_Count(stmt_type);
  4065.     end if;
  4066.     if Group_Two(stmt_type) then
  4067.         g_2_total := g_2_total + Report_Count(stmt_type);
  4068.     end if;
  4069.     Put_Integer(Report_Count(stmt_type));
  4070.     Total_Report_Count(stmt_type) :=
  4071.         Total_Report_Count(stmt_type) + Report_Count(stmt_type);
  4072.     end loop;
  4073.     Put_Integer(g_1_total);
  4074.     Put_Integer(g_2_total);
  4075.     Put_Integer(total);
  4076.     Space_Line;
  4077.  
  4078. end RawReport; 
  4079.  
  4080. procedure TableReport(
  4081.  
  4082. --| Produces a table containing the results from the Statement Profile
  4083. --| and ratios and sums of the two specified groups.
  4084.                       Report_Count : in  ReportArray
  4085.                      ) is
  4086.  
  4087.  
  4088. --| Effects:
  4089. --| Generates a table for output from the counts in Report_Count,
  4090.  
  4091. --| N/A: Modifies, Errors, Requires
  4092.  
  4093.     graph_count   : INTEGER := 0;
  4094.     total         : INTEGER := 0;
  4095.     g_1_total     : INTEGER := 0;
  4096.     g_2_total     : INTEGER := 0;
  4097.     percentage    : INTEGER;
  4098.     ratio         : INTEGER;
  4099.  
  4100. begin
  4101.  
  4102. -- Put Unit name and header
  4103.  
  4104.     Put_Line(Separator);
  4105.     Put("Name = ");
  4106.     Put(Source_File_Name);
  4107.     Space(1);
  4108.     Put_Fully_Qualified_Name;
  4109.     Put_Line(Separator);
  4110.     Put_Line(Header);
  4111.     Put_Line(Separator);
  4112.  
  4113. -- Determine total count of all statements
  4114.  
  4115.     for stmt_type in ReportStatementKind loop
  4116.         total := total + Report_Count(stmt_type);
  4117.     end loop;
  4118.  
  4119. -- For each statement type, put the name, the total count, the percentage
  4120. --  of the total count, group signifiers if any, and bar graph of total.
  4121.  
  4122.     for stmt_type in ReportStatementKind loop
  4123.     exit when stmt_type = AllStmts;
  4124.  
  4125.     -- Put statement type
  4126.  
  4127.     ENUM_IO.Put(Enum_String, stmt_type);
  4128.         Put(Enum_String);
  4129.     INT_IO.Put(Int_String, Report_Count(stmt_type));
  4130.         Put(Int_String);
  4131.         Space(1);
  4132.  
  4133.     -- Put percentage of total
  4134.  
  4135.     if total /= 0 then
  4136.         percentage := INTEGER((Report_Count(stmt_type)*100)/total);
  4137.     else
  4138.         percentage := 0;
  4139.     end if;
  4140.     INT_IO.Put(Int_String, percentage);
  4141.         Put(Int_String);
  4142.         Space(7);
  4143.  
  4144.     -- Put *'s for signifying groups
  4145.  
  4146.         if Group_One(stmt_type) then
  4147.             Put('*');
  4148.             g_1_total := g_1_total + Report_Count(stmt_type);
  4149.         else 
  4150.             Put(' ');
  4151.         end if;
  4152.         Space(7);
  4153.         if Group_Two(stmt_type) then
  4154.             Put('*');
  4155.             g_2_total := g_2_total + Report_Count(stmt_type);
  4156.         else 
  4157.             Put(' ');
  4158.         end if;
  4159.         Space(5);
  4160.  
  4161.     -- Put ='s for graph
  4162.  
  4163.         Put('|');
  4164.         graph_count := INTEGER(percentage / 4);
  4165.         for i in 1..graph_count loop
  4166.             Put('=');
  4167.         end loop;
  4168.         Space_Line;
  4169.  
  4170.         Total_Report_Count(stmt_type) :=
  4171.                 Total_Report_Count(stmt_type) + Report_Count(stmt_type);
  4172.  
  4173.     end loop;
  4174.     Put_Line(Separator);
  4175.  
  4176. -- Put totals
  4177.  
  4178.     Put("TOTALS");
  4179.     Space(9);
  4180.     INT_IO.Put(Int_String, total);
  4181.     Put(Int_String);
  4182.     Space(9);
  4183.     INT_IO.Put(Int_String, g_1_total);
  4184.     Put(Int_String);
  4185.     Space(1);
  4186.     INT_IO.Put(Int_String, g_2_total);
  4187.     Put(Int_String);
  4188.     Space_Line;
  4189.     Put_Line(Separator);
  4190.  
  4191. -- Put sum and ratio
  4192.  
  4193.     Put("sum group1 + group2 = ");
  4194.     INT_IO.Put(Int_String, g_1_total + g_2_total);
  4195.     Put(Int_String);
  4196.     Space_Line;
  4197.     Put("ratio group1:group2 = ");
  4198.  
  4199.     if g_1_total /= 0 and g_2_total /= 0 then
  4200.         ratio := g_1_total*100;
  4201.         ratio := INTEGER(ratio/g_2_total);
  4202.     else
  4203.         ratio := 0;
  4204.     end if;
  4205.  
  4206.     INT_IO.Put(Int_String, ratio);
  4207.     Put(Int_String);
  4208.     Put(" / 100");  -- this can be changed with fixed pt.
  4209.     Space_Line;
  4210.     Put_Line(Separator);
  4211.     Put_Page;
  4212.  
  4213. end TableReport;
  4214.  
  4215. procedure Put_Grand_Total is
  4216.  
  4217.     begin
  4218.         if Report_Format = RAW then
  4219.         Put("<TOTAL> ");
  4220.             RawReport(Total_Report_Count);
  4221.         else
  4222.             Put_Line(Separator);
  4223.             Put_Line("     Grand Totals for  File   ");
  4224.             TableReport(Total_Report_Count);
  4225.         end if;
  4226.  
  4227.     end Put_Grand_Total;
  4228.  
  4229. procedure Report_Statements is
  4230.  
  4231. --| Determines the correct type of report to be produced.
  4232. --| Raises: ?
  4233.  
  4234. --| Effects
  4235. --| Call ProcessProfileSpec and from the results, determine the correct
  4236. --| type of output, and call the appropriate reporting procedure.
  4237.  
  4238. --| N/A: Modifies, Errors, Requires
  4239.  
  4240.  
  4241. begin
  4242.  
  4243.     if Report_Format = RAW then
  4244.         RawReport(Stack_Info.Report_Count);
  4245.     else
  4246.         TableReport(Stack_Info.Report_Count);
  4247.     end if;
  4248.  
  4249. end Report_Statements;
  4250.  
  4251. --------------------------------------------------------------------------
  4252. --  The following subprograms are used in the actions file along with the
  4253. --  stack operations.
  4254. --------------------------------------------------------------------------
  4255.  
  4256. procedure Increment_Report_Count(
  4257.     StmtKind : in ReportStatementKind
  4258.     ) is
  4259.  
  4260.     begin
  4261.         Stack_Info.Report_Count(StmtKind) :=
  4262.                 Stack_Info.Report_Count(StmtKind) + 1;
  4263.  
  4264.     end Increment_Report_Count;
  4265.  
  4266. procedure Report_and_Pop_Stack is
  4267.  
  4268.     begin
  4269.         Report_Statements;
  4270.     ST.Pop(Subunit_Stack, Stack_Info);
  4271.     exception
  4272.     when ST.Empty_Stack =>
  4273.         raise EmptyStack;
  4274.     end Report_and_Pop_Stack;
  4275.  
  4276. procedure Add_and_Pop_Stack is
  4277.  
  4278.     Stack_Element : ItemType;
  4279.  
  4280.     begin
  4281.     ST.Pop(Subunit_Stack, Stack_Element);
  4282.     Stack_Info.Call_Stmt := Stack_Info.Call_Stmt + Stack_Element.Call_Stmt;
  4283.     Stack_Info.Unit_Name := Stack_Element.Unit_Name;
  4284.     for stmt_type in ReportStatementKind loop
  4285.         exit when stmt_type = AllStmts;
  4286.         Stack_Info.Report_Count(stmt_type)
  4287.         := Stack_Info.Report_Count(stmt_type)
  4288.          + Stack_Element.Report_Count(stmt_type);
  4289.     end loop;
  4290.     exception
  4291.     when ST.Empty_Stack =>
  4292.         raise EmptyStack;
  4293.     end Add_and_Pop_Stack;
  4294.  
  4295. end Stmt_Profile_Utilities;
  4296. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  4297. --STMTPROF.ADA
  4298. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  4299.  
  4300. --------- SPEC ----------------------------------------------------------
  4301. procedure StmtProf;
  4302.  
  4303. --------- BODY ----------------------------------------------------------
  4304.  
  4305. with TEXT_IO;                   -- Ada LRM Chapter 14 TEXT_IO
  4306. with Paginated_Output;
  4307. with Parser;
  4308. with Lex;
  4309. with ParserDeclarations;
  4310. with Stmt_Profile_Utilities;
  4311. with Host_Dependencies;
  4312. with Command_Line_Interface;
  4313. with String_Pkg;
  4314. with VMS_Lib;
  4315.  
  4316. procedure StmtProf is
  4317.  
  4318.     use Stmt_Profile_Utilities;
  4319.  
  4320.     package TIO renames TEXT_IO;
  4321.     package SPU renames Stmt_Profile_Utilities;
  4322.     package HD  renames Host_Dependencies;
  4323.     package CLI renames Command_Line_Interface;
  4324.     package SP  renames String_Pkg;
  4325.     package PD  renames ParserDeclarations;
  4326.     package PO  renames Paginated_Output;
  4327.     package VL  renames VMS_Lib;
  4328.  
  4329.     Error_Flag : boolean := false;
  4330.     Units      : ParserDeclarations.ParseStackElement;
  4331.     Input_File : TIO.FILE_TYPE;
  4332.     Out_File   : SP.String_Type;
  4333.     N, P       : INTEGER;
  4334.     Maxparm    : constant INTEGER := 4;
  4335.     Minparm    : constant INTEGER := 1;
  4336.     Arg_Name   : constant array (1 .. Maxparm) of SP.String_Type
  4337.                 := (1 => SP.Create("SOURCE"),
  4338.                     2 => SP.Create("OUTPUT"),
  4339.                     3 => SP.Create ("PROFILE"),
  4340.                     4 => SP.Create ("REPORT"));
  4341.     Arg_Value  : array (1 .. Maxparm) of SP.String_Type
  4342.                 := (1 => SP.Create (""),
  4343.                     2 => SP.Create (""),
  4344.                     3 => SP.Create (""),
  4345.                     4 => SP.Create ("TABLE"));
  4346.  
  4347.     procedure Help is
  4348.     begin
  4349.     TIO.PUT_LINE("-- STATEMENT_PROFILE: Profiles Ada source file");
  4350.     TIO.PUT_LINE("type REPORT_TYPE is (RAW, TABLE);");
  4351.     TIO.PUT_LINE("procedure STATEMENT_PROFILE ( SOURCE  : in STRING;");
  4352.     TIO.PUT_LINE("                              OUTPUT  : in STRING      := """";");
  4353.     TIO.PUT_LINE("                              PROFILE : in STRING      := """";");
  4354.     TIO.PUT_LINE("                              REPORT  : in REPORT_TYPE := TABLE );");
  4355.     TIO.PUT_LINE("-- SOURCE  : Name of the input file");
  4356.     TIO.PUT_LINE("-- OUTPUT  : Name of the report file (defaults to standard output)");
  4357.     TIO.PUT_LINE("-- PROFILE : Ratio of statements to be computed (defaults to a null string)");
  4358.     TIO.PUT_LINE("-- REPORT  : TABLE or RAW output format (defaults to TABLE)");
  4359.     TIO.PUT_LINE("--    Valid PROFILE strings are:");
  4360.     TIO.PUT_LINE("--       Group:Group");
  4361.     TIO.PUT_LINE("--           : Two groups of statements whose ratio is to be computed.");
  4362.     TIO.PUT_LINE("--             Group is a list of items shown below separated by commas.");
  4363.     TIO.PUT_LINE("--          Abort_Stmt,      Accept_Stmt,     Assignment_Stmt, Basic_Decl,");
  4364.     TIO.PUT_LINE("--          Block_Stmt,      Case_Stmt,       Code_Stmt,       Delay_Stmt,");
  4365.     TIO.PUT_LINE("--          Else_Stmt,       Elsif_Stmt,      Entry_Call,      Except_Handler,");
  4366.     TIO.PUT_LINE("--          Exit_Stmt,       Goto_Stmt,       If_Stmt,         Long_Comment,");
  4367.     TIO.PUT_LINE("--          Loop_Stmt,       Null_Stmt,       Pragma_Stmt,     Procedure_Call,");
  4368.     TIO.PUT_LINE("--          Raise_Stmt,      Return_Stmt,     Select_Stmt,     Short_Comment,");
  4369.     TIO.PUT_LINE("--          Use_Stmt,        With_Stmt,       AllStmts");
  4370.     end Help;
  4371.  
  4372. begin  -- procedure MAIN
  4373.  
  4374.     VL.Set_Error;
  4375.  
  4376.     begin
  4377.     CLI.Initialize;
  4378.     exception
  4379.     when CLI.Invalid_Parameter_Order =>
  4380.         TIO.PUT_LINE("Error : Positional arguments not allowed after named arguments.");
  4381.         Help;
  4382.         return;
  4383.     when CLI.Missing_Positional_Arg =>
  4384.         TIO.PUT_LINE("Error : Positional argument omitted.");
  4385.         Help;
  4386.         return;
  4387.     when CLI.Invalid_Named_Association =>
  4388.         TIO.PUT_LINE("Error : Named argument not followed by its value.");
  4389.         Help;
  4390.         return;
  4391.     end;
  4392.  
  4393.     N := CLI.Named_Arg_Count;
  4394.     P := CLI.Positional_Arg_Count;
  4395.  
  4396.     if (P = 0 and N = 0) then 
  4397.     Help;
  4398.     return;
  4399.     end if;
  4400.  
  4401.     if (P > Maxparm) or (N > Maxparm) or
  4402.        (N + P > Maxparm) or (N + P < Minparm) then
  4403.     TIO.Put_Line ("Error : Too many arguments.");
  4404.     Help;
  4405.     return;
  4406.     end if;    
  4407.  
  4408.     SP.Mark;
  4409.     for i in 1 .. P loop
  4410.     Arg_Value(i) := CLI.Positional_Arg_Value(i);
  4411.     end loop;
  4412.     for i in 1 .. Maxparm loop
  4413.     Arg_Value(i) := CLI.Named_Arg_Value(SP.Value(Arg_Name(i)), Arg_Value(i)); 
  4414.     end loop;
  4415.  
  4416.     begin
  4417.     CLI.Finalize;
  4418.     exception
  4419.     when CLI.Unreferenced_Named_Arg =>
  4420.         TIO.PUT_LINE("Error : Invalid named argument specified.");
  4421.     Help;
  4422.     return;
  4423.     end;
  4424.  
  4425.     if SP.Equal(Arg_Value(1), "") then
  4426.     TIO.Put_Line ("Error : Input file specification not given.");
  4427.     return;
  4428.     end if;
  4429.     Source_File_Name := SP.Make_Persistent(Arg_Value(1));
  4430.     Out_File         := SP.Make_Persistent(Arg_Value(2));
  4431.     Profile_Spec     := SP.Make_Persistent(Arg_Value(3));
  4432.     SP.Release;
  4433.  
  4434.     begin
  4435.     SPU.Process_Profile_Spec;
  4436.     exception
  4437.     when Stmt_Profile_Utilities.Report_Error =>
  4438.         TIO.PUT_LINE("Error : Invalid profile specifications """ & SP.Value(Profile_Spec) & """.");
  4439.         TIO.PUT_LINE("        Valid statement types are:");
  4440.         TIO.PUT_LINE("          Abort_Stmt,      Accept_Stmt,     Assignment_Stmt, Basic_Decl,");
  4441.         TIO.PUT_LINE("          Block_Stmt,      Case_Stmt,       Code_Stmt,       Delay_Stmt,");
  4442.         TIO.PUT_LINE("          Else_Stmt,       Elsif_Stmt,      Entry_Call,      Except_Handler,");
  4443.         TIO.PUT_LINE("          Exit_Stmt,       Goto_Stmt,       If_Stmt,         Long_Comment,");
  4444.         TIO.PUT_LINE("          Loop_Stmt,       Null_Stmt,       Pragma_Stmt,     Procedure_Call,");
  4445.         TIO.PUT_LINE("          Raise_Stmt,      Return_Stmt,     Select_Stmt,     Short_Comment,");
  4446.         TIO.PUT_LINE("          Use_Stmt,        With_Stmt,       AllStmts");
  4447.     Error_Flag := true;
  4448.     end;
  4449.  
  4450.     begin
  4451.     Report_Format    := Report_Type'value(SP.Value(Arg_Value(4)));
  4452.     exception
  4453.     when CONSTRAINT_ERROR =>
  4454.     TIO.Put      ("Error : Invalid report type ");
  4455.     TIO.Put      (SP.Value(Arg_Value(4)));
  4456.     TIO.Put_Line (".  Valid report type is RAW or TABLE.");
  4457.     Error_Flag := true;
  4458.     end;
  4459.  
  4460.     if Error_Flag then
  4461.     return;
  4462.     end if;
  4463.  
  4464. -- Echo back command line 
  4465.  
  4466.     TIO.PUT     ("STATEMENT_PROFILE ( SOURCE  => """);
  4467.     TIO.PUT     (SP.Value(Source_File_Name));
  4468.     TIO.PUT_LINE(""",");
  4469.     TIO.PUT     ("                    OUTPUT  => """);
  4470.     TIO.PUT     (SP.Value(Out_File));
  4471.     TIO.PUT_LINE(""",");
  4472.     TIO.PUT     ("                    PROFILE => """);
  4473.     TIO.PUT     (SP.Value(Profile_Spec));
  4474.     TIO.PUT_LINE(""",");
  4475.     TIO.PUT     ("                    REPORT  => ");
  4476.     TIO.PUT     (Report_Type'image(Report_Format));
  4477.     TIO.PUT_LINE(" );");
  4478.  
  4479.     TIO.OPEN(FILE => Input_File,
  4480.                  MODE => TIO.IN_FILE,
  4481.                  NAME => SP.Value(Source_File_Name));
  4482.     TIO.SET_INPUT(Input_File);
  4483.  
  4484.     if not SP.Equal(Out_File, "") then
  4485.     if SPU.Report_Format = RAW then
  4486.         PO.Set_Standard_Paginated_File(SP.Value(Out_File), 0, 0, 0);
  4487.     else
  4488.         PO.Set_Standard_Paginated_File(SP.Value(Out_File), 60, 4, 2);
  4489.         PO.Set_Header(2, Source_File_Name);
  4490.         PO.Set_Header(3, "Date : ~d     Time : ~t                                                   Page ~p");  
  4491.     end if;
  4492.     end if;
  4493.  
  4494.     Subunit_Stack := ST.Create;
  4495.  
  4496.     Units := Parser.Parse;
  4497.  
  4498.     SPU.Report_Statements;
  4499.     SPU.Put_Grand_Total;
  4500.  
  4501.     TIO.CLOSE(Input_File);
  4502.     PO.Close_Paginated_File;
  4503.  
  4504. exception
  4505.  
  4506.     when TIO.Status_Error =>
  4507.         TIO.PUT_LINE("Error : File " & SP.Value(Source_File_Name) & " already open.");
  4508.     when TIO.Name_Error =>
  4509.         TIO.PUT_LINE("Error : Unable to open file " & SP.Value(Source_File_Name) & " for input.");
  4510.     when TIO.Use_Error =>
  4511.         TIO.PUT_LINE("Error : Invalid file name " & SP.Value(Source_File_Name) & ".");
  4512.     when PD.Parser_Error =>
  4513.         TIO.PUT_LINE("Error : Syntax error in source: Line: " & HD.Source_Line
  4514.            'Image(PD.CurToken.lexed_token.srcpos_line) & " Column: " & 
  4515.             HD.Source_Column'Image(PD.CurToken.lexed_token.srcpos_column));
  4516.  
  4517.     when PO.File_ALready_Open =>
  4518.         TIO.PUT_LINE("Error : File " & SP.Value(Out_File) & " already open.");
  4519.     when PO.File_Error =>
  4520.         TIO.PUT_LINE("Error : Unable to open " & SP.Value(Out_File) & " for output.");
  4521.  
  4522.     when others =>
  4523.     TIO.PUT_LINE("Error : STATEMENT_PROFILE internal error.");
  4524.  
  4525. end StmtProf;
  4526. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  4527. --APPLYACT.SUB
  4528. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  4529.  
  4530.  with Stmt_Profile_Utilities;
  4531.  -- with INT_IO;
  4532.  
  4533.  separate (Parser)
  4534.  procedure Apply_Actions(Rule_Number : in PT.LeftHandSideRange) is
  4535.  
  4536.      use Stmt_Profile_Utilities;
  4537.  --  use INT_IO;
  4538.  
  4539.  begin
  4540.      case Rule_Number is
  4541.  
  4542.  
  4543.   ----------------------------------------------------------------------
  4544.  -- pragma ::= PRAGMA identifier ( general_component_associations ) ;  
  4545.  
  4546.  when 1 =>
  4547.  -- PUT( 1 ,4);
  4548.  
  4549.      Increment_Report_Count(pragma_stmt) ;
  4550.   ----------------------------------------------------------------------
  4551.  -- pragma ::= PRAGMA identifier ;  
  4552.  
  4553.  when 2 =>
  4554.  -- PUT( 2 ,4);
  4555.  
  4556.      Increment_Report_Count(pragma_stmt) ;
  4557.   ----------------------------------------------------------------------
  4558.  -- object_declaration ::= identifier_list : subtype_indication [:=expression] ; 
  4559.  
  4560.  when 14 =>
  4561.  -- PUT( 14 ,4);
  4562.  
  4563.      Increment_Report_Count(basic_decl) ;
  4564.   ----------------------------------------------------------------------
  4565.  -- object_declaration ::= identifier_list : CONSTANT subtype_indication ;  
  4566.  
  4567.  when 15 =>
  4568.  -- PUT( 15 ,4);
  4569.  
  4570.      Increment_Report_Count(basic_decl) ;
  4571.   ----------------------------------------------------------------------
  4572.  -- object_declaration ::= identifier_list : constrained_array_definition ;  
  4573.  
  4574.  when 16 =>
  4575.  -- PUT( 16 ,4);
  4576.  
  4577.      Increment_Report_Count(basic_decl) ;
  4578.   ----------------------------------------------------------------------
  4579.  -- object_declaration ::= identifier_list : CONSTANT  
  4580.  --     constrained_array_definition  
  4581.  
  4582.  when 17 =>
  4583.  -- PUT( 17 ,4);
  4584.  
  4585.      Increment_Report_Count(basic_decl) ;
  4586.   ----------------------------------------------------------------------
  4587.  -- number_declaration ::= identifier_list : CONSTANT := expression ;  
  4588.  
  4589.  when 18 =>
  4590.  -- PUT( 18 ,4);
  4591.  
  4592.      Increment_Report_Count(basic_decl) ;
  4593.   ----------------------------------------------------------------------
  4594.  -- full_type_declaration ::= TYPE identifier IS type_definition ;  
  4595.  
  4596.  when 23 =>
  4597.  -- PUT( 23 ,4);
  4598.  
  4599.      Increment_Report_Count(basic_decl) ;
  4600.   ----------------------------------------------------------------------
  4601.  -- full_type_declaration ::= TYPE identifier ( discriminant_specification ) IS  
  4602.  --     ;  
  4603.  
  4604.  when 24 =>
  4605.  -- PUT( 24 ,4);
  4606.  
  4607.      Increment_Report_Count(basic_decl) ;
  4608.   ----------------------------------------------------------------------
  4609.  -- subtype_declaration ::= SUBTYPE identifier IS subtype_indication ;  
  4610.  
  4611.  when 32 =>
  4612.  -- PUT( 32 ,4);
  4613.  
  4614.      Increment_Report_Count(basic_decl) ;
  4615.   ----------------------------------------------------------------------
  4616.  -- incomplete_type_declaration ::= TYPE identifier ;  
  4617.  
  4618.  when 77 =>
  4619.  -- PUT( 77 ,4);
  4620.  
  4621.      Increment_Report_Count(basic_decl) ;
  4622.   ----------------------------------------------------------------------
  4623.  -- incomplete_type_declaration ::= TYPE identifier ( discriminant_specification 
  4624.  --     )  
  4625.  
  4626.  when 78 =>
  4627.  -- PUT( 78 ,4);
  4628.  
  4629.      Increment_Report_Count(basic_decl) ;
  4630.   ----------------------------------------------------------------------
  4631.  -- null_statement ::= NULL ;  
  4632.  
  4633.  when 189 =>
  4634.  -- PUT( 189 ,4);
  4635.  
  4636.      Increment_Report_Count(null_stmt) ;
  4637.   ----------------------------------------------------------------------
  4638.  -- assignment_statement ::= name := expression ;  
  4639.  
  4640.  when 190 =>
  4641.  -- PUT( 190 ,4);
  4642.  
  4643.      Increment_Report_Count(assignment_stmt) ;
  4644.   ----------------------------------------------------------------------
  4645.  -- if_statement ::= IF condition_THEN__sequence_of_statements END IF ;  
  4646.  
  4647.  when 191 =>
  4648.  -- PUT( 191 ,4);
  4649.  
  4650.      Increment_Report_Count(if_stmt) ;
  4651.   ----------------------------------------------------------------------
  4652.  -- case_statement ::= CASE expression IS {pragma_alt}  
  4653.  --     case_statement_alternative  
  4654.  
  4655.  when 193 =>
  4656.  -- PUT( 193 ,4);
  4657.  
  4658.      Increment_Report_Count(case_stmt) ;
  4659.   ----------------------------------------------------------------------
  4660.  -- loop_statement ::= [loop_identifier:] LOOP sequence_of_statements END LOOP ; 
  4661.  
  4662.  when 196 =>
  4663.  -- PUT( 196 ,4);
  4664.  
  4665.      Increment_Report_Count(loop_stmt) ;
  4666.   ----------------------------------------------------------------------
  4667.  -- loop_statement ::= [loop_identifier:] iteration_rule LOOP END LOOP ;  
  4668.  
  4669.  when 197 =>
  4670.  -- PUT( 197 ,4);
  4671.  
  4672.      Increment_Report_Count(loop_stmt) ;
  4673.   ----------------------------------------------------------------------
  4674.  -- block_statement ::= [block_identifier:] DECLARE [identifier] ;  
  4675.  
  4676.  when 204 =>
  4677.  -- PUT( 204 ,4);
  4678.  
  4679.      Increment_Report_Count(block_stmt) ;
  4680.   ----------------------------------------------------------------------
  4681.  -- block_statement ::= [block_identifier:] begin_end_block [identifier] ;  
  4682.  
  4683.  when 205 =>
  4684.  -- PUT( 205 ,4);
  4685.  
  4686.      Increment_Report_Count(block_stmt) ;
  4687.   ----------------------------------------------------------------------
  4688.  -- exit_statement ::= EXIT ;  
  4689.  
  4690.  when 206 =>
  4691.  -- PUT( 206 ,4);
  4692.  
  4693.      Increment_Report_Count(exit_stmt) ;
  4694.   ----------------------------------------------------------------------
  4695.  -- exit_statement ::= EXIT WHEN condition ;  
  4696.  
  4697.  when 207 =>
  4698.  -- PUT( 207 ,4);
  4699.  
  4700.      Increment_Report_Count(exit_stmt) ;
  4701.   ----------------------------------------------------------------------
  4702.  -- exit_statement ::= EXIT expanded_name ;  
  4703.  
  4704.  when 208 =>
  4705.  -- PUT( 208 ,4);
  4706.  
  4707.      Increment_Report_Count(exit_stmt) ;
  4708.   ----------------------------------------------------------------------
  4709.  -- exit_statement ::= EXIT expanded_name WHEN condition ;  
  4710.  
  4711.  when 209 =>
  4712.  -- PUT( 209 ,4);
  4713.  
  4714.      Increment_Report_Count(exit_stmt) ;
  4715.   ----------------------------------------------------------------------
  4716.  -- return_statement ::= RETURN ;  
  4717.  
  4718.  when 210 =>
  4719.  -- PUT( 210 ,4);
  4720.  
  4721.      Increment_Report_Count(return_stmt) ;
  4722.   ----------------------------------------------------------------------
  4723.  -- return_statement ::= RETURN expression ;  
  4724.  
  4725.  when 211 =>
  4726.  -- PUT( 211 ,4);
  4727.  
  4728.      Increment_Report_Count(return_stmt) ;
  4729.   ----------------------------------------------------------------------
  4730.  -- goto_statement ::= GOTO expanded_name ;  
  4731.  
  4732.  when 212 =>
  4733.  -- PUT( 212 ,4);
  4734.  
  4735.      Increment_Report_Count(goto_stmt) ;
  4736.   ----------------------------------------------------------------------
  4737.  -- subprogram_declaration ::= subprogram_specification ;  
  4738.  
  4739.  when 213 =>
  4740.  -- PUT( 213 ,4);
  4741.  
  4742.      Add_and_Pop_Stack ;
  4743.      Increment_Report_Count(basic_decl) ;
  4744.   ----------------------------------------------------------------------
  4745.  -- subprogram_specification ::= PROCEDURE identifier  
  4746.  
  4747.  when 214 =>
  4748.  -- PUT( 214 ,4);
  4749.  
  4750.      Push_Stack ;
  4751.   ----------------------------------------------------------------------
  4752.  -- subprogram_specification ::= PROCEDURE identifier ( parameter_specification  
  4753.  --     )  
  4754.  
  4755.  when 215 =>
  4756.  -- PUT( 215 ,4);
  4757.  
  4758.      Push_Stack ;
  4759.   ----------------------------------------------------------------------
  4760.  -- subprogram_specification ::= FUNCTION designator RETURN type_mark  
  4761.  
  4762.  when 216 =>
  4763.  -- PUT( 216 ,4);
  4764.  
  4765.      Push_Stack ;
  4766.   ----------------------------------------------------------------------
  4767.  -- subprogram_specification ::= FUNCTION designator ( parameter_specification ) 
  4768.  
  4769.  when 217 =>
  4770.  -- PUT( 217 ,4);
  4771.  
  4772.      Push_Stack ;
  4773.   ----------------------------------------------------------------------
  4774.  -- subprogram_body ::= subprogram_specification IS [end_designator] ;  
  4775.  
  4776.  when 226 =>
  4777.  -- PUT( 226 ,4);
  4778.  
  4779.      Stack_Info.Report_Count(procedure_call) := Stack_Info.Call_Stmt;
  4780.      Report_and_Pop_Stack ;
  4781.   ----------------------------------------------------------------------
  4782.  -- call_statement ::= name ;  
  4783.  
  4784.  when 227 =>
  4785.  -- PUT( 227 ,4);
  4786.  
  4787.      Stack_Info.Call_Stmt := Stack_Info.Call_Stmt + 1;
  4788.   ----------------------------------------------------------------------
  4789.  -- package_declaration ::= package_specification ;  
  4790.  
  4791.  when 228 =>
  4792.  -- PUT( 228 ,4);
  4793.  
  4794.      Report_and_Pop_Stack ;
  4795.      Increment_Report_Count(basic_decl) ;
  4796.   ----------------------------------------------------------------------
  4797.  -- package_spec_indicator ::= PACKAGE identifier IS  
  4798.  
  4799.  when 231 =>
  4800.  -- PUT( 231 ,4);
  4801.  
  4802.      Push_Stack ;
  4803.   ----------------------------------------------------------------------
  4804.  -- package_body ::= package_body_indicator declarative_part END [identifier] ;  
  4805.  
  4806.  when 232 =>
  4807.  -- PUT( 232 ,4);
  4808.  
  4809.      Report_and_Pop_Stack ;
  4810.   ----------------------------------------------------------------------
  4811.  -- package_body ::= package_body_indicator declarative_part__begin_end_block ;  
  4812.  
  4813.  when 233 =>
  4814.  -- PUT( 233 ,4);
  4815.  
  4816.      Report_and_Pop_Stack ;
  4817.   ----------------------------------------------------------------------
  4818.  -- package_body_indicator ::= PACKAGE BODY identifier IS  
  4819.  
  4820.  when 234 =>
  4821.  -- PUT( 234 ,4);
  4822.  
  4823.      Push_Stack ;
  4824.   ----------------------------------------------------------------------
  4825.  -- private_type_declaration ::= TYPE identifier IS LIMITED PRIVATE ;  
  4826.  
  4827.  when 235 =>
  4828.  -- PUT( 235 ,4);
  4829.  
  4830.      Increment_Report_Count(basic_decl) ;
  4831.   ----------------------------------------------------------------------
  4832.  -- use_clause ::= USE expanded_name {,expanded_name} ;  
  4833.  
  4834.  when 239 =>
  4835.  -- PUT( 239 ,4);
  4836.  
  4837.      Increment_Report_Count(use_stmt) ;
  4838.   ----------------------------------------------------------------------
  4839.  -- renaming_declaration ::= identifier_list : type_mark RENAMES name ;  
  4840.  
  4841.  when 240 =>
  4842.  -- PUT( 240 ,4);
  4843.  
  4844.      Increment_Report_Count(basic_decl) ;
  4845.   ----------------------------------------------------------------------
  4846.  -- renaming_declaration ::= identifier_list : EXCEPTION RENAMES expanded_name ; 
  4847.  
  4848.  when 241 =>
  4849.  -- PUT( 241 ,4);
  4850.  
  4851.      Increment_Report_Count(basic_decl) ;
  4852.   ----------------------------------------------------------------------
  4853.  -- renaming_declaration ::= PACKAGE identifier RENAMES expanded_name ;  
  4854.  
  4855.  when 242 =>
  4856.  -- PUT( 242 ,4);
  4857.  
  4858.      Increment_Report_Count(basic_decl) ;
  4859.   ----------------------------------------------------------------------
  4860.  -- renaming_declaration ::= subprogram_specification RENAMES name ;  
  4861.  
  4862.  when 243 =>
  4863.  -- PUT( 243 ,4);
  4864.  
  4865.      Add_and_Pop_Stack ;
  4866.      Increment_Report_Count(basic_decl) ;
  4867.   ----------------------------------------------------------------------
  4868.  -- task_declaration ::= task_specification ;  
  4869.  
  4870.  when 244 =>
  4871.  -- PUT( 244 ,4);
  4872.  
  4873.      Increment_Report_Count(basic_decl) ;
  4874.   ----------------------------------------------------------------------
  4875.  -- task_body ::= task_body_indicator declarative_part__begin_end_block ;  
  4876.  
  4877.  when 249 =>
  4878.  -- PUT( 249 ,4);
  4879.  
  4880.      Report_and_Pop_Stack ;
  4881.   ----------------------------------------------------------------------
  4882.  -- task_body_indicator ::= TASK BODY identifier IS  
  4883.  
  4884.  when 250 =>
  4885.  -- PUT( 250 ,4);
  4886.  
  4887.      Push_Stack ;
  4888.   ----------------------------------------------------------------------
  4889.  -- accept_statement ::= ACCEPT identifier [(expression)][formal_part] ;  
  4890.  
  4891.  when 252 =>
  4892.  -- PUT( 252 ,4);
  4893.  
  4894.      Increment_Report_Count(accept_stmt) ;
  4895.   ----------------------------------------------------------------------
  4896.  -- accept_statement ::= ACCEPT identifier [(expression)][formal_part] DO END ;  
  4897.  
  4898.  when 253 =>
  4899.  -- PUT( 253 ,4);
  4900.  
  4901.      Increment_Report_Count(accept_stmt) ;
  4902.   ----------------------------------------------------------------------
  4903.  -- delay_statement ::= DELAY simple_expression ;  
  4904.  
  4905.  when 254 =>
  4906.  -- PUT( 254 ,4);
  4907.  
  4908.      Increment_Report_Count(delay_stmt) ;
  4909.   ----------------------------------------------------------------------
  4910.  -- selective_wait ::= SELECT select_alternative {OR__select_alternative} END ;  
  4911.  
  4912.  when 258 =>
  4913.  -- PUT( 258 ,4);
  4914.  
  4915.      Increment_Report_Count(select_stmt) ;
  4916.   ----------------------------------------------------------------------
  4917.  -- conditional_entry_call ::= SELECT {pragma_stm} call_statement ELSE END  
  4918.  --     SELECT  
  4919.  
  4920.  when 267 =>
  4921.  -- PUT( 267 ,4);
  4922.  
  4923.      Increment_Report_Count(entry_call) ;
  4924.      Stack_Info.Call_Stmt := Stack_Info.Call_Stmt - 1;
  4925.   ----------------------------------------------------------------------
  4926.  -- timed_entry_call ::= SELECT {pragma_stm} call_statement OR {pragma_stm} END  
  4927.  
  4928.  when 268 =>
  4929.  -- PUT( 268 ,4);
  4930.  
  4931.      Increment_Report_Count(entry_call) ;
  4932.      Stack_Info.Call_Stmt := Stack_Info.Call_Stmt - 1;
  4933.   ----------------------------------------------------------------------
  4934.  -- abort_statement ::= ABORT name {,name} ;  
  4935.  
  4936.  when 269 =>
  4937.  -- PUT( 269 ,4);
  4938.  
  4939.      Increment_Report_Count(abort_stmt) ;
  4940.   ----------------------------------------------------------------------
  4941.  -- with_clause ::= WITH identifier {,used_identifier} ;  
  4942.  
  4943.  when 283 =>
  4944.  -- PUT( 283 ,4);
  4945.  
  4946.      Increment_Report_Count(with_stmt) ;
  4947.   ----------------------------------------------------------------------
  4948.  -- body_stub ::= subprogram_specification IS SEPARATE ;  
  4949.  
  4950.  when 284 =>
  4951.  -- PUT( 284 ,4);
  4952.  
  4953.      Add_and_Pop_Stack ;
  4954.      Increment_Report_Count(basic_decl) ;
  4955.   ----------------------------------------------------------------------
  4956.  -- body_stub ::= PACKAGE BODY identifier IS SEPARATE ;  
  4957.  
  4958.  when 285 =>
  4959.  -- PUT( 285 ,4);
  4960.  
  4961.      Add_and_Pop_Stack ;
  4962.      Increment_Report_Count(basic_decl) ;
  4963.   ----------------------------------------------------------------------
  4964.  -- body_stub ::= TASK BODY identifier IS SEPARATE ;  
  4965.  
  4966.  when 286 =>
  4967.  -- PUT( 286 ,4);
  4968.  
  4969.      Add_and_Pop_Stack ;
  4970.      Increment_Report_Count(basic_decl) ;
  4971.   ----------------------------------------------------------------------
  4972.  -- exception_declaration ::= identifier_list : EXCEPTION ;  
  4973.  
  4974.  when 288 =>
  4975.  -- PUT( 288 ,4);
  4976.  
  4977.      Increment_Report_Count(basic_decl) ;
  4978.   ----------------------------------------------------------------------
  4979.  -- exception_handler ::= WHEN exception_choice {|exception_choice} =>  
  4980.  
  4981.  when 289 =>
  4982.  -- PUT( 289 ,4);
  4983.  
  4984.      Increment_Report_Count(except_handler) ;
  4985.   ----------------------------------------------------------------------
  4986.  -- raise_statement ::= RAISE ;  
  4987.  
  4988.  when 292 =>
  4989.  -- PUT( 292 ,4);
  4990.  
  4991.      Increment_Report_Count(raise_stmt) ;
  4992.   ----------------------------------------------------------------------
  4993.  -- raise_statement ::= RAISE expanded_name ;  
  4994.  
  4995.  when 293 =>
  4996.  -- PUT( 293 ,4);
  4997.  
  4998.      Increment_Report_Count(raise_stmt) ;
  4999.   ----------------------------------------------------------------------
  5000.  -- generic_declaration ::= generic_specification ;  
  5001.  
  5002.  when 294 =>
  5003.  -- PUT( 294 ,4);
  5004.  
  5005.      Increment_Report_Count(basic_decl) ;
  5006.   ----------------------------------------------------------------------
  5007.  -- generic_specification ::= generic_formal_part subprogram_specification  
  5008.  
  5009.  when 295 =>
  5010.  -- PUT( 295 ,4);
  5011.  
  5012.      Report_and_Pop_Stack ;
  5013.   ----------------------------------------------------------------------
  5014.  -- generic_specification ::= generic_formal_part package_specification  
  5015.  
  5016.  when 296 =>
  5017.  -- PUT( 296 ,4);
  5018.  
  5019.      Report_and_Pop_Stack ;
  5020.   ----------------------------------------------------------------------
  5021.  -- generic_parameter_declaration ::= WITH subprogram_specification ;  
  5022.  
  5023.  when 301 =>
  5024.  -- PUT( 301 ,4);
  5025.  
  5026.      Add_and_Pop_Stack ;
  5027.   ----------------------------------------------------------------------
  5028.  -- generic_instantiation ::= PACKAGE identifier IS NEW expanded_name ;  
  5029.  
  5030.  when 310 =>
  5031.  -- PUT( 310 ,4);
  5032.  
  5033.      Increment_Report_Count(basic_decl) ;
  5034.   ----------------------------------------------------------------------
  5035.  -- generic_instantiation ::= PACKAGE identifier IS NEW expanded_name ( ) ;  
  5036.  
  5037.  when 311 =>
  5038.  -- PUT( 311 ,4);
  5039.  
  5040.      Increment_Report_Count(basic_decl) ;
  5041.   ----------------------------------------------------------------------
  5042.  -- generic_instantiation ::= FUNCTION designator IS NEW expanded_name ;  
  5043.  
  5044.  when 312 =>
  5045.  -- PUT( 312 ,4);
  5046.  
  5047.      Increment_Report_Count(basic_decl) ;
  5048.   ----------------------------------------------------------------------
  5049.  -- generic_instantiation ::= FUNCTION designator IS NEW expanded_name ( ) ;  
  5050.  
  5051.  when 313 =>
  5052.  -- PUT( 313 ,4);
  5053.  
  5054.      Increment_Report_Count(basic_decl) ;
  5055.   ----------------------------------------------------------------------
  5056.  -- generic_instantiation ::= subprogram_specification IS NEW expanded_name ;  
  5057.  
  5058.  when 314 =>
  5059.  -- PUT( 314 ,4);
  5060.  
  5061.      Add_and_Pop_Stack ;
  5062.      Increment_Report_Count(basic_decl) ;
  5063.   ----------------------------------------------------------------------
  5064.  -- generic_instantiation ::= subprogram_specification IS NEW expanded_name ( )  
  5065.  --     ;  
  5066.  
  5067.  when 315 =>
  5068.  -- PUT( 315 ,4);
  5069.  
  5070.      Add_and_Pop_Stack ;
  5071.      Increment_Report_Count(basic_decl) ;
  5072.   ----------------------------------------------------------------------
  5073.  -- code_statement ::= name ' aggregate ;  
  5074.  
  5075.  when 331 =>
  5076.  -- PUT( 331 ,4);
  5077.  
  5078.      Increment_Report_Count(code_stmt) ;
  5079.   ----------------------------------------------------------------------
  5080.  -- {ELSIF__condition__THEN__sequence_of_statements} ::= ELSIF condition THEN  
  5081.  
  5082.  when 412 =>
  5083.  -- PUT( 412 ,4);
  5084.  
  5085.      Increment_Report_Count(elsif_stmt) ;
  5086.   ----------------------------------------------------------------------
  5087.  -- [ELSE__sequence_of_statements] ::= ELSE sequence_of_statements  
  5088.  
  5089.  when 414 =>
  5090.  -- PUT( 414 ,4);
  5091.  
  5092.      Increment_Report_Count(else_stmt) ;
  5093.  
  5094.      when others =>
  5095.          null;
  5096.      end case;
  5097.  
  5098.  end Apply_Actions;
  5099.  
  5100.  
  5101. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  5102. --GETNEXT.SUB
  5103. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  5104. -- $Source: /nosc/work/tools/stmtprof/RCS/getnext.sub,v $
  5105. -- $Revision: 3.2 $ -- $Date: 85/02/28 11:54:32 $ -- $Author: cindy $
  5106.  
  5107. -- $Source: /nosc/work/tools/stmtprof/RCS/getnext.sub,v $
  5108. -- $Revision: 3.2 $ -- $Date: 85/02/28 11:54:32 $ -- $Author: cindy $
  5109.  
  5110. -- with TEXT_IO;
  5111. with ParserDeclarations;
  5112. with Stmt_Profile_Utilities;
  5113.  
  5114. separate (Lex)
  5115. function GetNextNonCommentToken return PD.ParseStackElement is
  5116.  
  5117.         use Stmt_Profile_Utilities;
  5118.  
  5119.     begin
  5120.         loop
  5121.             CST := GetNextSourceToken;
  5122.  
  5123.             if (CST.gram_sym_val = PT.PackageTokenValue) OR
  5124.                (CST.gram_sym_val = PT.ProcedureTokenValue) OR
  5125.                (CST.gram_sym_val = PT.FunctionTokenValue) OR
  5126.                (CST.gram_sym_val = PT.TaskTokenValue) then
  5127.  
  5128.                 Ident_Flag := True;
  5129.  
  5130.             elsif (CST.gram_sym_val = PT.IdentifierTokenValue) OR
  5131.                   (CST.gram_sym_val = PT.StringTokenValue) then
  5132.  
  5133.                 if Ident_Flag then
  5134.                     Identifier := CST.lexed_token.text;
  5135.                     Ident_Flag := False;
  5136.                 end if;
  5137.  
  5138.             end if;
  5139.  
  5140.  
  5141.             exit when (CST.gram_sym_val = PT.EOF_TokenValue) or
  5142.                       (CST.gram_sym_val /= PT.Comment_TokenValue);
  5143.  
  5144. --          this is a comment.  put here the code which deals with
  5145. --          comments for your tool
  5146.  
  5147.             if CST.lexed_token.srcpos_line =
  5148.                     Previous_Line then
  5149.                 Increment_Report_Count(short_Comment) ;
  5150.             else
  5151.                 Increment_Report_Count(long_Comment) ;
  5152.             end if;
  5153.             Previous_Line := CST.lexed_token.srcpos_line;
  5154.  
  5155.         end loop;
  5156.  
  5157.         Previous_Line := CST.lexed_token.srcpos_line;
  5158.  
  5159. -- Debug Aid
  5160. -- TEXT_IO.Put_Line(PD.Dump_Parse_Stack_Element(CST));
  5161. --
  5162.  
  5163.         return CST; -- return the token that is not a comment
  5164.     end GetNextNonCommentToken;
  5165.  
  5166.