diff --git a/.github/workflows/test-other.yml b/.github/workflows/test-other.yml index d2fc21c3..3caad844 100644 --- a/.github/workflows/test-other.yml +++ b/.github/workflows/test-other.yml @@ -63,4 +63,8 @@ jobs: - name: Run tests ${{ inputs.test-name }} working-directory: tests/ run: - ./${{ inputs.test-name }} \ No newline at end of file + ./${{ inputs.test-name }} + + - name: Run tests cobj-api + run: + make test-cobj-api \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 38927d7f..7f89a138 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [1.0.22] - 2024-04-30 +### Added +* Add cobj-api command (#370) +* Implement a -Wstrict-typing (#369) +### Miscellaneous +* Simplify generated Java code based on SonarQube analysis (#366) +* Improve the error message for record keys with duplicates (#368) ## [1.0.21] - 2024-03-29 ### Added * Implement a new option `-info-json-dir` (#362) diff --git a/ChangeLog b/ChangeLog index 593f8bae..db840fb3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2024-04-30 OSS Consortium + + * opensource COBOL 4J v1.0.22 released. + 2024-03-29 OSS Consortium * opensource COBOL 4J v1.0.21 released. diff --git a/Makefile.am b/Makefile.am index 904184dd..618535b7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -75,3 +75,6 @@ defaults.h: Makefile.am $(top_builddir)/config.status echo "#define COB_MODULE_EXT \"$(COB_MODULE_EXT)\""; \ echo "#define LOCALEDIR \"$(datadir)/locale\""; \ } > defaults.h + +test-cobj-api: + $(MAKE) -C libcobj test \ No newline at end of file diff --git a/Makefile.in b/Makefile.in index 93117cd9..fbe138e1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1025,6 +1025,9 @@ defaults.h: Makefile.am $(top_builddir)/config.status echo "#define LOCALEDIR \"$(datadir)/locale\""; \ } > defaults.h +test-cobj-api: + $(MAKE) -C libcobj test + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/NEWS b/NEWS index be32d638..180da316 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,17 @@ NEWS - user visible changes -*- outline -*- ----------------------------------------------------------------------- +* opensource COBOL 4J 1.0.22 + +** New Features + (1) Add cobj-api command + (2) Implement `-Wstrict-typing` +** Miscellaneous + (1) Simplify generated Java code based on SonarQube analysis + (2) Improve the error message for record keys with duplicates + +----------------------------------------------------------------------- + * opensource COBOL 4J 1.0.21 ** New Features diff --git a/README.md b/README.md index 5aaa5ebf..494580f7 100644 --- a/README.md +++ b/README.md @@ -53,9 +53,9 @@ dnf install -y java-21-amazon-corretto-devel gcc make bison flex automake autoco ### Install opensource COBOL 4J ``` -curl -L -o opensourcecobol4j-v1.0.21.tar.gz https://github.com/opensourcecobol/opensourcecobol4j/archive/refs/tags/v1.0.21.tar.gz -tar zxvf opensourcecobol4j-v1.0.21.tar.gz -cd opensourcecobol4j-1.0.21 +curl -L -o opensourcecobol4j-v1.0.22.tar.gz https://github.com/opensourcecobol/opensourcecobol4j/archive/refs/tags/v1.0.22.tar.gz +tar zxvf opensourcecobol4j-v1.0.22.tar.gz +cd opensourcecobol4j-1.0.22 ./configure --prefix=/usr/ make sudo make install @@ -72,7 +72,7 @@ In order to check installations of older versions, The docker container for opensource COBOL 4J is available. ```bash -docker pull opensourcecobol/opensourcecobol4j:1.0.21 +docker pull opensourcecobol/opensourcecobol4j:1.0.22 ``` Execute the following commands in order to run the "Hello World" COBOL program. @@ -201,6 +201,23 @@ Options: -v, --version Print the version of cobj-idx. ``` + +## cobj-api +With `cobj-api`, you can easily generate an Spring boot Java file that calls the program generated by `cobj`. + +``` +Usage: cobj-api [options] + +Arguments: + : a json file generated by cobj with `-info-json-dir` option + +Options: + -h, --help Display this message + -java-package= Specify the package name of the generated source code + -o=, --output-dir= Set the output destination of the java file to an arbitrary destination + -v, --version Prints the version of the cobj-api +``` + ## Contributing Guidelines for contributing to opensource COBOL 4J can be found in [CONTRIBUTING.md](./CONTRIBUTING.md). diff --git a/README_JP.md b/README_JP.md index e35c116f..53390c56 100644 --- a/README_JP.md +++ b/README_JP.md @@ -23,7 +23,7 @@ opensource COBOL 4J は下記の環境でテストされています. ## インストール -opensource COBOL 4J v1.0.21はUbuntuとAlmaLinuxで動作を確認しています. +opensource COBOL 4J v1.0.22はUbuntuとAlmaLinuxで動作を確認しています. ## 手動インストール @@ -57,9 +57,9 @@ dnf install -y java-21-amazon-corretto-devel gcc make bison flex automake autoco 下記のコマンドを実行する ``` -curl -L -o opensourcecobol4j-v1.0.21.tar.gz https://github.com/opensourcecobol/opensourcecobol4j/archive/refs/tags/v1.0.21.tar.gz -tar zxvf opensourcecobol4j-v1.0.21.tar.gz -cd opensourcecobol4j-1.0.21 +curl -L -o opensourcecobol4j-v1.0.22.tar.gz https://github.com/opensourcecobol/opensourcecobol4j/archive/refs/tags/v1.0.22.tar.gz +tar zxvf opensourcecobol4j-v1.0.22.tar.gz +cd opensourcecobol4j-1.0.22 ./configure --prefix=/usr/ make sudo make install @@ -73,10 +73,10 @@ sudo make install ## Dockerによるインストール -opensource COBOL 4J v1.0.21をインストールしたDockerイメージを利用できます. +opensource COBOL 4J v1.0.22をインストールしたDockerイメージを利用できます. ```bash -docker pull opensourcecobol/opensourcecobol4j:1.0.21 +docker pull opensourcecobol/opensourcecobol4j:1.0.22 ``` コンテナ内で下記のコマンドを実行すると、Hello Worldプログラムをコンパイル&実行できる。 @@ -208,6 +208,22 @@ Options: Print the version of cobj-idx. ``` +## cobj-api +cobj-apiコマンドを使用することで、`cobj`で生成されたプログラムを呼び出すSpring boot向けのJavaファイルを簡単に生成できます。 + +``` +Usage: cobj-api [options] + +Arguments: + : a json file generated by cobj with `-info-json-dir` option + +Options: + -h, --help Display this message + -java-package= Specify the package name of the generated source code + -o=, --output-dir= Set the output destination of the java file to an arbitrary destination + -v, --version Prints the version of the cobj-api +``` + ## コントリビューㇳ コントリビュータの一覧は https://github.com/opensourcecobol/opensourcecobol4j/graphs/contributors に掲載されています。 diff --git a/cobj/codegen.c b/cobj/codegen.c index fed4409c..0b25f42a 100644 --- a/cobj/codegen.c +++ b/cobj/codegen.c @@ -2696,14 +2696,19 @@ static void joutput_search_all(cb_tree table, cb_tree stmt, cb_tree cond, p = cb_field(table); idx = CB_VALUE(p->index_list); + /* Header */ joutput_indent("{"); joutput_line("int ret;"); - joutput_line("int head = %d - 1;", p->occurs_min); + joutput_line("int head = %d;", p->occurs_min - 1); joutput_prefix(); joutput("int tail = "); - joutput_occurs(p); - joutput(" + 1;\n"); + if (p->occurs_depending) { + joutput_integer(p->occurs_depending); + joutput(" + 1;\n"); + } else { + joutput("%d;\n", p->occurs_max + 1); + } /* Start loop */ joutput_line("for (;;)"); diff --git a/cobj/parser.c b/cobj/parser.c index 884bcd04..2763d409 100644 --- a/cobj/parser.c +++ b/cobj/parser.c @@ -1881,7 +1881,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 5653 +#define YYLAST 5900 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 463 @@ -1890,7 +1890,7 @@ union yyalloc /* YYNRULES -- Number of rules. */ #define YYNRULES 1597 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 2351 +#define YYNSTATES 2353 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 704 @@ -2007,143 +2007,143 @@ static const yytype_int16 yyrline[] = 1795, 1799, 1800, 1801, 1808, 1828, 1871, 1871, 1875, 1879, 1895, 1896, 1897, 1903, 1913, 1922, 1924, 1925, 1931, 1935, 1936, 1937, 1940, 1941, 1942, 1946, 1950, 1951, 1957, 1958, - 1962, 1971, 1980, 1989, 1998, 2013, 2023, 2030, 2034, 2068, - 2075, 2076, 2083, 2087, 2088, 2089, 2095, 2102, 2103, 2106, - 2107, 2108, 2109, 2113, 2114, 2118, 2119, 2125, 2150, 2151, - 2152, 2153, 2159, 2166, 2167, 2171, 2174, 2175, 2181, 2182, - 2183, 2187, 2191, 2195, 2199, 2203, 2213, 2214, 2228, 2229, - 2229, 2232, 2231, 2244, 2245, 2249, 2261, 2270, 2274, 2275, - 2285, 2284, 2302, 2303, 2307, 2314, 2321, 2322, 2323, 2324, - 2325, 2326, 2327, 2328, 2329, 2330, 2337, 2341, 2341, 2341, - 2347, 2359, 2384, 2408, 2409, 2416, 2417, 2421, 2422, 2429, - 2436, 2437, 2444, 2448, 2457, 2458, 2464, 2474, 2492, 2493, - 2497, 2498, 2499, 2503, 2510, 2517, 2527, 2534, 2552, 2556, - 2567, 2568, 2568, 2579, 2580, 2584, 2584, 2601, 2602, 2604, - 2608, 2610, 2609, 2635, 2634, 2660, 2664, 2671, 2673, 2695, - 2700, 2706, 2715, 2723, 2724, 2732, 2733, 2734, 2738, 2758, - 2762, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, - 2780, 2781, 2782, 2783, 2784, 2785, 2792, 2814, 2836, 2837, - 2849, 2869, 2876, 2877, 2881, 2882, 2883, 2884, 2885, 2886, - 2887, 2888, 2889, 2890, 2891, 2892, 2897, 2902, 2903, 2904, - 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, - 2915, 2916, 2917, 2918, 2919, 2920, 2928, 2936, 2944, 2951, - 2956, 2966, 2967, 2968, 2972, 2989, 2990, 2993, 2994, 3000, - 3000, 3003, 3027, 3043, 3044, 3048, 3049, 3052, 3052, 3055, - 3062, 3063, 3068, 3078, 3085, 3088, 3089, 3090, 3097, 3104, - 3129, 3133, 3133, 3138, 3139, 3143, 3144, 3147, 3148, 3161, - 3173, 3193, 3207, 3209, 3208, 3228, 3229, 3229, 3242, 3244, - 3243, 3255, 3256, 3260, 3261, 3270, 3277, 3280, 3284, 3288, - 3289, 3290, 3297, 3298, 3302, 3305, 3305, 3308, 3309, 3315, - 3320, 3321, 3324, 3325, 3328, 3329, 3332, 3333, 3336, 3337, - 3341, 3342, 3343, 3347, 3348, 3351, 3352, 3356, 3360, 3361, - 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, - 3375, 3376, 3377, 3378, 3379, 3380, 3384, 3388, 3389, 3390, - 3391, 3392, 3393, 3394, 3398, 3402, 3403, 3404, 3408, 3409, - 3413, 3417, 3422, 3426, 3430, 3434, 3435, 3439, 3440, 3444, - 3445, 3446, 3449, 3449, 3449, 3452, 3456, 3459, 3459, 3462, - 3469, 3470, 3471, 3470, 3488, 3489, 3493, 3494, 3499, 3501, - 3500, 3537, 3538, 3542, 3543, 3544, 3545, 3546, 3547, 3548, - 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, - 3562, 3566, 3570, 3574, 3575, 3576, 3577, 3578, 3579, 3580, - 3581, 3588, 3592, 3602, 3605, 3609, 3613, 3617, 3625, 3628, - 3632, 3636, 3640, 3648, 3661, 3663, 3673, 3662, 3700, 3702, - 3701, 3708, 3707, 3716, 3717, 3722, 3729, 3731, 3735, 3745, - 3747, 3755, 3763, 3792, 3823, 3825, 3835, 3840, 3851, 3852, - 3852, 3879, 3880, 3884, 3885, 3886, 3887, 3903, 3915, 3946, - 3983, 3995, 3998, 3999, 4008, 4012, 4008, 4025, 4046, 4050, - 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, - 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, - 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, - 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, - 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4122, - 4121, 4134, 4138, 4142, 4146, 4150, 4154, 4158, 4162, 4166, - 4170, 4174, 4178, 4182, 4186, 4190, 4194, 4198, 4205, 4206, - 4207, 4208, 4209, 4210, 4214, 4218, 4219, 4222, 4223, 4227, - 4228, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4243, - 4247, 4251, 4256, 4257, 4258, 4259, 4260, 4261, 4265, 4266, - 4275, 4275, 4281, 4285, 4289, 4295, 4296, 4300, 4301, 4310, - 4310, 4315, 4319, 4326, 4327, 4336, 4342, 4343, 4347, 4347, - 4355, 4355, 4365, 4367, 4366, 4375, 4376, 4381, 4388, 4395, - 4397, 4401, 4409, 4420, 4421, 4422, 4427, 4431, 4430, 4442, - 4446, 4445, 4456, 4457, 4466, 4466, 4470, 4471, 4475, 4487, - 4487, 4491, 4492, 4503, 4504, 4505, 4506, 4507, 4510, 4510, - 4518, 4518, 4524, 4531, 4532, 4535, 4535, 4542, 4555, 4568, - 4568, 4579, 4580, 4589, 4589, 4609, 4608, 4621, 4625, 4629, - 4633, 4637, 4641, 4645, 4650, 4654, 4661, 4662, 4663, 4667, - 4668, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, - 4682, 4686, 4690, 4694, 4699, 4700, 4704, 4705, 4714, 4714, - 4720, 4724, 4728, 4732, 4736, 4743, 4744, 4753, 4753, 4775, - 4774, 4793, 4794, 4805, 4814, 4819, 4827, 4856, 4857, 4863, - 4862, 4878, 4882, 4881, 4896, 4897, 4902, 4903, 4914, 4943, - 4944, 4945, 4948, 4949, 4953, 4954, 4963, 4963, 4968, 4969, - 4977, 4985, 4993, 5011, 5036, 5036, 5049, 5049, 5062, 5062, - 5071, 5075, 5088, 5088, 5101, 5103, 5101, 5114, 5119, 5123, - 5122, 5136, 5137, 5146, 5146, 5154, 5155, 5159, 5160, 5161, - 5165, 5166, 5171, 5172, 5177, 5181, 5182, 5183, 5184, 5185, - 5186, 5187, 5191, 5192, 5201, 5201, 5214, 5213, 5223, 5224, - 5225, 5229, 5230, 5234, 5235, 5236, 5242, 5242, 5247, 5248, - 5252, 5253, 5254, 5255, 5256, 5257, 5263, 5267, 5268, 5272, - 5277, 5281, 5282, 5283, 5284, 5285, 5289, 5315, 5328, 5329, - 5333, 5333, 5341, 5341, 5351, 5351, 5356, 5360, 5372, 5372, - 5378, 5382, 5389, 5390, 5399, 5399, 5403, 5404, 5418, 5419, - 5420, 5421, 5425, 5426, 5430, 5431, 5432, 5444, 5444, 5449, - 5454, 5453, 5463, 5470, 5471, 5475, 5480, 5489, 5492, 5496, - 5501, 5508, 5515, 5516, 5520, 5521, 5526, 5538, 5538, 5567, - 5568, 5572, 5573, 5577, 5581, 5585, 5589, 5596, 5597, 5603, - 5604, 5605, 5609, 5610, 5619, 5619, 5634, 5634, 5645, 5646, - 5655, 5655, 5672, 5673, 5677, 5684, 5685, 5694, 5707, 5707, - 5713, 5718, 5717, 5728, 5729, 5733, 5735, 5734, 5745, 5746, - 5751, 5750, 5761, 5762, 5771, 5771, 5776, 5777, 5778, 5779, - 5780, 5786, 5795, 5799, 5808, 5815, 5816, 5822, 5823, 5827, - 5836, 5837, 5841, 5845, 5857, 5857, 5863, 5862, 5879, 5882, - 5903, 5904, 5907, 5908, 5912, 5913, 5918, 5923, 5931, 5943, - 5948, 5956, 5972, 5973, 5972, 5993, 5994, 6002, 6003, 6004, - 6005, 6006, 6010, 6011, 6020, 6020, 6025, 6025, 6032, 6033, - 6034, 6043, 6043, 6052, 6053, 6057, 6058, 6059, 6063, 6064, - 6068, 6069, 6078, 6078, 6084, 6088, 6092, 6099, 6100, 6109, - 6116, 6117, 6125, 6125, 6138, 6138, 6154, 6154, 6163, 6165, - 6166, 6175, 6175, 6185, 6186, 6191, 6192, 6197, 6204, 6205, - 6210, 6217, 6218, 6222, 6223, 6227, 6228, 6232, 6233, 6242, - 6243, 6244, 6248, 6272, 6275, 6283, 6293, 6298, 6303, 6308, - 6315, 6316, 6319, 6320, 6324, 6324, 6328, 6328, 6332, 6332, - 6335, 6336, 6340, 6347, 6348, 6352, 6364, 6364, 6381, 6382, - 6387, 6390, 6394, 6398, 6405, 6406, 6409, 6410, 6411, 6415, - 6416, 6429, 6437, 6444, 6446, 6445, 6455, 6457, 6456, 6471, - 6475, 6477, 6476, 6487, 6489, 6488, 6505, 6511, 6513, 6512, - 6522, 6524, 6523, 6539, 6544, 6549, 6559, 6558, 6570, 6569, - 6585, 6590, 6595, 6605, 6604, 6616, 6615, 6630, 6631, 6635, - 6640, 6645, 6655, 6654, 6666, 6665, 6682, 6685, 6697, 6704, - 6711, 6711, 6721, 6722, 6724, 6725, 6726, 6727, 6728, 6729, - 6731, 6732, 6733, 6734, 6735, 6736, 6738, 6739, 6741, 6742, - 6743, 6746, 6748, 6749, 6750, 6752, 6753, 6754, 6756, 6757, - 6759, 6760, 6761, 6762, 6763, 6765, 6766, 6767, 6768, 6769, - 6770, 6772, 6773, 6774, 6775, 6776, 6777, 6779, 6780, 6783, - 6783, 6783, 6784, 6784, 6785, 6785, 6786, 6786, 6786, 6787, - 6787, 6787, 6792, 6793, 6796, 6797, 6798, 6802, 6803, 6804, - 6805, 6806, 6807, 6808, 6809, 6810, 6821, 6833, 6848, 6849, - 6854, 6860, 6882, 6902, 6906, 6922, 6936, 6937, 6942, 6948, - 6949, 6954, 6963, 6964, 6965, 6969, 6980, 6981, 6985, 6995, - 6996, 7000, 7001, 7005, 7006, 7012, 7032, 7033, 7037, 7038, - 7042, 7043, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, - 7055, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7069, 7070, - 7074, 7075, 7079, 7080, 7084, 7085, 7096, 7097, 7101, 7102, - 7103, 7107, 7108, 7109, 7117, 7121, 7122, 7123, 7124, 7128, - 7129, 7133, 7143, 7161, 7188, 7200, 7201, 7211, 7212, 7216, - 7217, 7218, 7219, 7220, 7221, 7222, 7230, 7234, 7238, 7242, - 7246, 7250, 7254, 7258, 7262, 7266, 7270, 7274, 7281, 7282, - 7283, 7287, 7288, 7292, 7293, 7298, 7305, 7312, 7322, 7329, - 7339, 7346, 7360, 7370, 7371, 7375, 7376, 7380, 7381, 7385, - 7386, 7387, 7391, 7392, 7396, 7397, 7401, 7402, 7406, 7407, - 7414, 7414, 7415, 7415, 7416, 7416, 7417, 7417, 7419, 7419, - 7420, 7420, 7421, 7421, 7422, 7422, 7423, 7423, 7424, 7424, - 7425, 7425, 7426, 7426, 7427, 7427, 7428, 7428, 7429, 7429, - 7430, 7430, 7431, 7431, 7432, 7432, 7433, 7433, 7434, 7434, - 7435, 7435, 7436, 7436, 7436, 7437, 7437, 7438, 7438, 7438, + 1962, 1971, 1980, 1989, 1998, 2013, 2023, 2030, 2039, 2077, + 2084, 2085, 2092, 2096, 2097, 2098, 2104, 2111, 2112, 2115, + 2116, 2117, 2118, 2122, 2123, 2127, 2128, 2134, 2159, 2160, + 2161, 2162, 2168, 2175, 2176, 2180, 2183, 2184, 2190, 2191, + 2192, 2196, 2200, 2204, 2208, 2212, 2222, 2223, 2237, 2238, + 2238, 2241, 2240, 2253, 2254, 2258, 2270, 2279, 2283, 2284, + 2294, 2293, 2311, 2312, 2316, 2323, 2330, 2331, 2332, 2333, + 2334, 2335, 2336, 2337, 2338, 2339, 2346, 2350, 2350, 2350, + 2356, 2368, 2393, 2417, 2418, 2425, 2426, 2430, 2431, 2438, + 2445, 2446, 2453, 2457, 2466, 2467, 2473, 2483, 2501, 2502, + 2506, 2507, 2508, 2512, 2519, 2526, 2536, 2543, 2561, 2565, + 2576, 2577, 2577, 2588, 2589, 2593, 2593, 2610, 2611, 2613, + 2617, 2619, 2618, 2644, 2643, 2669, 2673, 2680, 2682, 2704, + 2709, 2715, 2724, 2732, 2733, 2741, 2742, 2743, 2747, 2767, + 2771, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, + 2789, 2790, 2791, 2792, 2793, 2794, 2801, 2823, 2845, 2846, + 2858, 2878, 2885, 2886, 2890, 2891, 2892, 2893, 2894, 2895, + 2896, 2897, 2898, 2899, 2900, 2901, 2906, 2911, 2912, 2913, + 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, + 2924, 2925, 2926, 2927, 2928, 2929, 2937, 2945, 2953, 2960, + 2965, 2975, 2976, 2977, 2981, 2998, 2999, 3002, 3003, 3009, + 3009, 3012, 3036, 3052, 3053, 3057, 3058, 3061, 3061, 3064, + 3071, 3072, 3077, 3087, 3094, 3097, 3098, 3099, 3106, 3113, + 3138, 3142, 3142, 3147, 3148, 3152, 3153, 3156, 3157, 3170, + 3182, 3202, 3216, 3218, 3217, 3237, 3238, 3238, 3251, 3253, + 3252, 3264, 3265, 3269, 3270, 3279, 3286, 3289, 3293, 3297, + 3298, 3299, 3306, 3307, 3311, 3314, 3314, 3317, 3318, 3324, + 3329, 3330, 3333, 3334, 3337, 3338, 3341, 3342, 3345, 3346, + 3350, 3351, 3352, 3356, 3357, 3360, 3361, 3365, 3369, 3370, + 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, + 3384, 3385, 3386, 3387, 3388, 3389, 3393, 3397, 3398, 3399, + 3400, 3401, 3402, 3403, 3407, 3411, 3412, 3413, 3417, 3418, + 3422, 3426, 3431, 3435, 3439, 3443, 3444, 3448, 3449, 3453, + 3454, 3455, 3458, 3458, 3458, 3461, 3465, 3468, 3468, 3471, + 3478, 3479, 3480, 3479, 3497, 3498, 3502, 3503, 3508, 3510, + 3509, 3546, 3547, 3551, 3552, 3553, 3554, 3555, 3556, 3557, + 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, + 3571, 3575, 3579, 3583, 3584, 3585, 3586, 3587, 3588, 3589, + 3590, 3597, 3601, 3611, 3614, 3618, 3622, 3626, 3634, 3637, + 3641, 3645, 3649, 3657, 3670, 3672, 3682, 3671, 3709, 3711, + 3710, 3717, 3716, 3725, 3726, 3731, 3738, 3740, 3744, 3754, + 3756, 3764, 3772, 3801, 3832, 3834, 3844, 3849, 3860, 3861, + 3861, 3888, 3889, 3893, 3894, 3895, 3896, 3912, 3924, 3955, + 3992, 4004, 4007, 4008, 4017, 4021, 4017, 4034, 4055, 4059, + 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, + 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, + 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, + 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, + 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4131, + 4130, 4143, 4147, 4151, 4155, 4159, 4163, 4167, 4171, 4175, + 4179, 4183, 4187, 4191, 4195, 4199, 4203, 4207, 4214, 4215, + 4216, 4217, 4218, 4219, 4223, 4227, 4228, 4231, 4232, 4236, + 4237, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4252, + 4256, 4260, 4265, 4266, 4267, 4268, 4269, 4270, 4274, 4275, + 4284, 4284, 4290, 4294, 4298, 4304, 4305, 4309, 4310, 4319, + 4319, 4324, 4328, 4335, 4336, 4345, 4351, 4352, 4356, 4356, + 4364, 4364, 4374, 4376, 4375, 4384, 4385, 4390, 4397, 4404, + 4406, 4410, 4418, 4429, 4430, 4431, 4436, 4440, 4439, 4451, + 4455, 4454, 4465, 4466, 4475, 4475, 4479, 4480, 4484, 4496, + 4496, 4500, 4501, 4512, 4513, 4514, 4515, 4516, 4519, 4519, + 4527, 4527, 4533, 4540, 4541, 4544, 4544, 4551, 4564, 4577, + 4577, 4588, 4589, 4598, 4598, 4618, 4617, 4630, 4634, 4638, + 4642, 4646, 4650, 4654, 4659, 4663, 4670, 4671, 4672, 4676, + 4677, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, + 4691, 4695, 4699, 4703, 4708, 4709, 4713, 4714, 4723, 4723, + 4729, 4733, 4737, 4741, 4745, 4752, 4753, 4762, 4762, 4784, + 4783, 4802, 4803, 4814, 4823, 4828, 4836, 4865, 4866, 4872, + 4871, 4887, 4891, 4890, 4905, 4906, 4911, 4912, 4923, 4952, + 4953, 4954, 4957, 4958, 4962, 4963, 4972, 4972, 4977, 4978, + 4986, 4994, 5002, 5020, 5045, 5045, 5058, 5058, 5071, 5071, + 5080, 5084, 5097, 5097, 5110, 5112, 5110, 5123, 5128, 5132, + 5131, 5145, 5146, 5155, 5155, 5163, 5164, 5168, 5169, 5170, + 5174, 5175, 5180, 5181, 5186, 5190, 5191, 5192, 5193, 5194, + 5195, 5196, 5200, 5201, 5210, 5210, 5223, 5222, 5232, 5233, + 5234, 5238, 5239, 5243, 5244, 5245, 5251, 5251, 5256, 5257, + 5261, 5262, 5263, 5264, 5265, 5266, 5272, 5276, 5277, 5281, + 5286, 5290, 5291, 5292, 5293, 5294, 5298, 5324, 5337, 5338, + 5342, 5342, 5350, 5350, 5360, 5360, 5365, 5369, 5381, 5381, + 5387, 5391, 5398, 5399, 5408, 5408, 5412, 5413, 5427, 5428, + 5429, 5430, 5434, 5435, 5439, 5440, 5441, 5453, 5453, 5458, + 5463, 5462, 5472, 5479, 5480, 5484, 5489, 5498, 5501, 5505, + 5510, 5517, 5524, 5525, 5529, 5530, 5535, 5547, 5547, 5576, + 5577, 5581, 5582, 5586, 5590, 5594, 5598, 5605, 5606, 5612, + 5613, 5614, 5618, 5619, 5628, 5628, 5643, 5643, 5654, 5655, + 5664, 5664, 5681, 5682, 5686, 5693, 5694, 5703, 5716, 5716, + 5722, 5727, 5726, 5737, 5738, 5742, 5744, 5743, 5754, 5755, + 5760, 5759, 5770, 5771, 5780, 5780, 5785, 5786, 5787, 5788, + 5789, 5795, 5804, 5808, 5817, 5824, 5825, 5831, 5832, 5836, + 5845, 5846, 5850, 5854, 5866, 5866, 5872, 5871, 5888, 5891, + 5912, 5913, 5916, 5917, 5921, 5922, 5927, 5932, 5940, 5952, + 5957, 5965, 5981, 5982, 5981, 6002, 6003, 6011, 6012, 6013, + 6014, 6015, 6019, 6020, 6029, 6029, 6034, 6034, 6041, 6042, + 6043, 6052, 6052, 6061, 6062, 6066, 6067, 6068, 6072, 6073, + 6077, 6078, 6087, 6087, 6093, 6097, 6101, 6108, 6109, 6118, + 6125, 6126, 6134, 6134, 6147, 6147, 6163, 6163, 6172, 6174, + 6175, 6184, 6184, 6194, 6195, 6200, 6201, 6206, 6213, 6214, + 6219, 6226, 6227, 6231, 6232, 6236, 6237, 6241, 6242, 6251, + 6252, 6253, 6257, 6281, 6284, 6292, 6302, 6307, 6312, 6317, + 6324, 6325, 6328, 6329, 6333, 6333, 6337, 6337, 6341, 6341, + 6344, 6345, 6349, 6356, 6357, 6361, 6373, 6373, 6390, 6391, + 6396, 6399, 6403, 6407, 6414, 6415, 6418, 6419, 6420, 6424, + 6425, 6438, 6446, 6453, 6455, 6454, 6464, 6466, 6465, 6480, + 6484, 6486, 6485, 6496, 6498, 6497, 6514, 6520, 6522, 6521, + 6531, 6533, 6532, 6548, 6553, 6558, 6568, 6567, 6579, 6578, + 6594, 6599, 6604, 6614, 6613, 6625, 6624, 6639, 6640, 6644, + 6649, 6654, 6664, 6663, 6675, 6674, 6691, 6694, 6706, 6713, + 6720, 6720, 6730, 6731, 6733, 6734, 6735, 6736, 6737, 6738, + 6740, 6741, 6742, 6743, 6744, 6745, 6747, 6748, 6750, 6751, + 6752, 6755, 6757, 6758, 6759, 6761, 6762, 6763, 6765, 6766, + 6768, 6769, 6770, 6771, 6772, 6774, 6775, 6776, 6777, 6778, + 6779, 6781, 6782, 6783, 6784, 6785, 6786, 6788, 6789, 6792, + 6792, 6792, 6793, 6793, 6794, 6794, 6795, 6795, 6795, 6796, + 6796, 6796, 6801, 6802, 6805, 6806, 6807, 6811, 6812, 6813, + 6814, 6815, 6816, 6817, 6818, 6819, 6830, 6842, 6857, 6858, + 6863, 6869, 6891, 6911, 6915, 6931, 6945, 6946, 6951, 6957, + 6958, 6963, 6972, 6973, 6974, 6978, 6989, 6990, 6994, 7004, + 7005, 7009, 7010, 7014, 7015, 7021, 7041, 7042, 7046, 7047, + 7051, 7052, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, + 7064, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7078, 7079, + 7083, 7084, 7088, 7089, 7093, 7094, 7105, 7106, 7110, 7111, + 7112, 7116, 7117, 7118, 7126, 7130, 7131, 7132, 7133, 7137, + 7138, 7142, 7152, 7170, 7197, 7209, 7210, 7220, 7221, 7225, + 7226, 7227, 7228, 7229, 7230, 7231, 7239, 7243, 7247, 7251, + 7255, 7259, 7263, 7267, 7271, 7275, 7279, 7283, 7290, 7291, + 7292, 7296, 7297, 7301, 7302, 7307, 7314, 7321, 7331, 7338, + 7348, 7355, 7369, 7379, 7380, 7384, 7385, 7389, 7390, 7394, + 7395, 7396, 7400, 7401, 7405, 7406, 7410, 7411, 7415, 7416, + 7423, 7423, 7424, 7424, 7425, 7425, 7426, 7426, 7428, 7428, + 7429, 7429, 7430, 7430, 7431, 7431, 7432, 7432, 7433, 7433, + 7434, 7434, 7435, 7435, 7436, 7436, 7437, 7437, 7438, 7438, 7439, 7439, 7440, 7440, 7441, 7441, 7442, 7442, 7443, 7443, - 7444, 7444, 7445, 7445, 7445, 7446, 7446, 7447, 7447, 7448, - 7448, 7449, 7449, 7450, 7450, 7451, 7451, 7452, 7452, 7452, - 7453, 7453, 7454, 7454, 7455, 7455, 7456, 7456, 7457, 7457, - 7458, 7458, 7459, 7459, 7461, 7461, 7462, 7462 + 7444, 7444, 7445, 7445, 7445, 7446, 7446, 7447, 7447, 7447, + 7448, 7448, 7449, 7449, 7450, 7450, 7451, 7451, 7452, 7452, + 7453, 7453, 7454, 7454, 7454, 7455, 7455, 7456, 7456, 7457, + 7457, 7458, 7458, 7459, 7459, 7460, 7460, 7461, 7461, 7461, + 7462, 7462, 7463, 7463, 7464, 7464, 7465, 7465, 7466, 7466, + 7467, 7467, 7468, 7468, 7470, 7470, 7471, 7471 }; #endif @@ -2438,7 +2438,7 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-1738) +#define YYPACT_NINF (-1768) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -2452,242 +2452,242 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - -1738, 253, 46, -1738, -150, -138, 190, -1738, -1738, -1738, - 177, 177, 14, 14, -1738, -1738, 523, -1738, -1738, -1738, - -1738, 651, 651, 270, 604, 604, 554, 422, -1738, 823, - 817, -1738, -1738, -1738, -1738, -30, 619, 947, 556, 713, - 713, -1738, 568, 84, 596, 624, 847, 659, -1738, 316, - 1080, 899, 1082, -1738, -74, -1738, -1738, 920, -1738, -1738, - -1738, 780, -1738, -1738, -1738, 891, 806, -1738, 77, -1738, - 500, 177, 14, -1738, -1738, -1738, -1738, 707, -1738, 1085, - 131, 818, 932, 1055, 862, -1738, -1738, 1006, 14, -1738, - -1738, -1738, 902, 911, 916, 918, 922, -1738, -1738, -1738, - -1738, -1738, 1004, 927, 1168, 917, 985, 758, -1738, 340, - -1738, -1738, -1738, 24, -1738, -1738, 942, 1042, 1167, -1738, - 57, 926, -1738, 91, 91, 958, 949, 952, 604, -1738, - 324, 1226, 119, 1112, 1128, -1738, -1738, 955, -1738, 1132, - 1134, 1012, 1142, 1019, -1738, 1030, -1738, -1738, -1738, 1405, - -1738, -1738, -1738, -1738, -1738, -1738, 975, 1077, 1102, -1738, - 862, -1738, -1738, -1738, -1738, -1738, 40, -1738, -107, -68, - 132, -1738, -1738, -1738, -1738, 1067, 1232, -1738, -38, -1738, - 583, -1738, -1738, -1738, -1738, 81, 193, -1738, -19, -1738, - -1738, -1738, 995, 723, 1344, 1011, 1232, 1232, 1011, 1081, - 1094, 1232, 1232, 1232, 1232, 1232, 1011, 1232, 1410, 1232, - -1738, 1486, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, 1011, 1004, 131, 1025, -1738, - 1025, 1025, -1738, 1234, 1025, -1738, 1386, -1738, 1298, 57, - 926, -1738, 1023, 1123, 1129, 926, 117, 1115, 882, -1738, - 1232, 1110, 1203, -1738, -1738, 1378, 713, 1232, 1253, -1738, - 588, -1738, -1738, 1130, -1738, 1232, 1284, -1738, 71, -1738, - -1738, -1738, -1738, 1041, 1251, -1738, -1738, 1011, 1011, 1232, - 1232, -1738, 1232, 1025, 1434, 1011, 1011, 1025, 1232, 1025, - -1738, 1011, 23, -1738, -1738, -1738, -1738, 480, 1025, -1738, - -1738, 1025, 1223, 1095, 1227, -1738, 862, -1738, 862, -1738, - -1738, 926, -1738, 1053, 1153, -1738, -1738, -1738, 1115, -1738, - -1738, -1738, -12, 12, -1738, -1738, 1386, 1232, 934, 934, - 1232, 42, 1264, 1232, 1492, 1240, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, 778, 661, 1232, - -1738, 1078, 1064, -1738, 899, 1253, -1738, -1738, -1738, -1738, - 1025, -1738, -1738, -1738, -1738, -1738, 1232, -1738, -1738, 773, - 1025, 1287, -1738, -1738, -1738, -1738, -1738, 1025, -1738, -1738, - 56, -1738, -1738, 992, -1738, -1738, -1738, -1738, 1025, -1738, - 1025, 1247, 1025, 862, -1738, 1228, 862, -1738, -1738, 926, - -1738, 1075, -1738, -1738, 1449, -1738, 1456, -1738, -1738, 1253, - 1104, 1232, 1492, 1025, -67, 27, 1253, 1105, -1738, 1232, - 1107, -1738, 1107, -16, -1738, -1738, -1738, -1738, -1738, 1253, - -1738, -1738, -1738, 521, 74, -1738, 1050, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, 773, -1738, 1147, -1738, -1738, -1738, - -1738, -1738, -1738, 1253, -1738, -1738, 992, -1738, 1175, -1738, - 1281, -1738, 1025, 1025, 1025, -1738, 1253, -1738, -1738, -1738, - 1248, -1738, -1738, 72, 1131, 1166, -1738, -1738, -1738, 1025, - -1738, -1738, -1738, -1738, -1738, -1738, 1334, 82, 1374, 1133, - -1738, -1738, -1738, 1232, 1232, -1738, -1738, 2694, 14, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, 996, -1738, 109, -1738, 773, 1253, - -1738, -1738, -1738, 1232, 992, -1738, 1264, 1267, 1184, -1738, - 1224, 1264, 1381, 1232, 1549, 168, 191, 874, -1738, 1176, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, 1222, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - 1232, 1025, -1738, 1107, -1738, 1248, -1738, -1738, 2431, 1581, - 1431, 187, -1738, 1253, 147, -1738, -1738, -1738, 1253, -1738, - -1738, 1254, -1738, 97, 97, 2836, -1738, 1172, -1738, -1738, - -1738, -1738, 1273, 3499, 1177, -1738, -1738, 996, -1738, -1738, - 1011, -1738, 1232, 1381, -1738, 164, -1738, 1232, -1738, 1232, - 28, -1738, 1232, -1738, 1232, 1259, 1232, 1232, -1738, 1405, - 142, 1232, 1189, -1738, -1738, 1406, -1738, 1409, -1738, -1738, - -95, -94, 575, 632, 679, 1197, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, 1290, -1738, -1738, 1253, -1738, - -1738, -1738, -1738, 1025, 1025, 1425, -1738, -1738, -1738, 686, - -1738, -1738, -1738, 1232, 1232, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, 979, -15, -1738, 287, -1738, 524, -1738, -1738, - -1738, -1738, 88, 1410, -1738, 743, -1738, -1738, -1738, -1738, - 1531, -1738, 1407, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, 1237, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, 1184, -1738, 2075, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, 450, -1738, -1738, 1340, -1738, -1738, -1738, -1738, - 819, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, 1084, -1738, -1738, - 55, 1232, -1738, -1738, 469, 179, 1025, 1619, -1738, -1738, - 27, 1277, -1738, 1025, 1025, -1738, 1373, 1373, 1382, -1738, - 1025, -1738, 135, -12, -1738, -1738, 1406, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - 1214, -1738, -1738, 1261, -1738, 1208, 1268, -1738, -1738, -1738, - -1738, 5061, 524, 1640, -1738, 1307, 1307, 773, 1142, 1142, - -1738, -1738, 1210, -1738, 524, -1738, 1274, -1738, -1738, -1738, - -1738, -1738, 63, 1502, -1738, -1738, 1166, 1253, 1225, -1738, - 1233, 1025, 3961, 1239, 114, 1709, 1668, -1738, 4546, 862, - 1278, 4615, 4546, 1443, 781, 909, 111, 1025, -1738, -1738, - 1554, -1738, 111, 1025, 3224, 1025, 4023, 4546, -1738, 1922, - 862, 1025, 862, 1025, 78, 92, 1025, 862, -1738, -1738, - 3983, 4045, -1738, -1738, 1025, 1025, 862, 1025, -1738, 1083, - 1584, 1025, -1738, -1738, -1738, -1738, -1738, -1738, 1676, -1738, - -1738, -1738, -1738, -1738, 1025, 162, 182, 99, 1255, -1738, - 1255, -1738, -1738, -1738, -1738, 620, -1738, -1738, -1738, -1738, - -1738, 1025, 1232, 1520, 1520, 187, -1738, -1738, -1738, -1738, - 1506, -1738, -1738, -1738, 1253, 1293, 5171, 1241, -1738, 1025, - -1738, -1738, 1461, -1738, 1549, -1738, -1738, -1738, 1025, 1025, - 773, 1197, -1738, 524, 27, 27, 1670, 1410, -1738, -1738, - -1738, 1574, 611, -1738, 1142, 1244, 1025, 1245, 1246, 1142, - 480, 1249, 1252, 1256, 1257, 1258, 1260, 1266, 1270, 1245, - 1585, -1738, 4245, -1738, -1738, -1738, -1738, 1504, -1738, 1661, - -1738, -1738, -1738, 1319, -1738, 480, -1738, -1738, 1291, -1738, - -1738, -1738, 115, 862, 1599, 1446, -1738, 1384, 1411, 862, - 966, 1602, 3927, 1029, 1109, 1605, 167, 1291, -1738, -1738, - 80, -1738, -1738, -1738, 1639, -1738, -1738, -1738, 1142, 111, - -1738, -1738, -1738, -1738, -1738, 1342, -1738, 61, 1025, -1738, - 237, -1738, -1738, -1738, -1738, -1738, 4546, -1738, 1339, 1607, - 1696, 783, -1738, 1345, -1738, 2551, 1608, -122, 1348, 1349, - -119, 1353, 844, 1572, -1738, 1411, 1572, 1025, 1611, 1320, - -1738, 1211, -1738, -1738, -1738, -1738, -1738, 1507, -1738, 111, - -1738, -50, -1738, 234, -1738, -1738, -1738, 479, 1708, 2530, - -1738, -1738, 1025, 1612, 4295, 1025, 1579, 962, 1648, -1738, - 1430, 1387, 1134, 1572, 1084, 203, -1738, 1326, -1738, 1025, - 490, -1738, -1738, 1232, -1738, -1738, -1738, -1738, 115, -1738, - -1738, 1025, -1738, 1253, 1406, -1738, -1738, -1738, -1738, 1655, - 1142, 5171, 5171, 5171, 64, 808, -1738, -1738, -1738, 1210, - -1738, 5171, -1738, -1738, -1738, -1738, -1738, -1738, -1738, 1408, - -1738, -1738, 1334, 27, 1657, -1738, -1738, 1211, 1000, 1333, - 103, -7, 5171, 1372, 5171, -1738, 5171, -1738, 5205, 1343, - 5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171, -1738, -1738, - -1738, 4546, 1589, -1738, -1738, 1445, 1504, 1752, 3184, 1475, - 1551, -1738, 558, -1738, -1738, -1738, 695, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, 715, 862, -1738, -1738, - 339, 1626, 1626, 1626, 1626, -1738, -1738, 4546, 4546, -1738, - -1738, 120, 1656, 859, -1738, 1354, 781, -1738, 1025, -1738, - 9, -1738, -1738, 971, 1623, -1738, 1211, 105, -1738, 237, - -1738, -1738, -1738, -1738, 58, 1392, 111, -1738, -1738, 4546, - -1738, -1738, -1738, -1738, 1432, -1738, -1738, -1738, -1738, 1025, - 114, -1738, 1137, -1738, -1738, 1411, 115, -1738, 1586, 431, - 908, -1738, -1738, 1025, 908, 1394, -1738, 1210, -1738, -1738, - 110, 992, -1738, -1738, 1952, -1738, 1751, 1583, 4546, 4546, - -1738, 4307, 1025, -1738, 1622, -1738, -1738, 4546, 1211, -1738, - -1738, -1738, 1708, 1593, 1025, -1738, 1070, 68, 431, -1738, - -1738, 1682, -1738, -1738, -1738, 1025, -1738, 1525, -1738, -1738, - 1025, 1025, -1738, 1025, 1613, 1044, 12, -1738, 4831, 1134, - 846, 5205, 1355, 1355, 910, -1738, -1738, -1738, 5171, 5171, - 5171, 5171, 5171, 5171, 5084, 808, -1738, 1184, -1738, 1334, - 1134, -1738, -1738, -1738, 1626, -1738, -1738, 1361, 1365, -1738, - 1211, 1626, 1594, -1738, -1738, -1738, -1738, 1675, 1626, 1543, - 1543, 1543, 96, 1582, -1738, -1738, 241, -1738, 101, 929, - 1025, 884, 106, 1357, -1738, 1210, -1738, -1738, 246, 1359, - 986, 304, 1360, 1101, 116, 144, 579, 1363, 1127, 4418, - 425, 4546, 111, -1738, 1477, -1738, -1738, -1738, -1738, -1738, - 1184, -1738, -1738, 1423, -1738, -1738, 1423, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - 1419, 114, -1738, 51, 1025, 1025, 83, -1738, -1738, -1738, - 574, 711, 1450, -1738, -1738, 1695, -1738, 1561, -1738, 16, - 1182, 1626, 1559, -1738, -1738, 1564, -1738, -1738, -1738, 1643, - 4418, 460, -1738, -1738, -1738, 3088, -1738, 1435, -1738, -1738, - -1738, -1738, -1738, 120, -1738, -1738, -1738, 1134, -1738, -1738, - -1738, 1184, -1738, -1738, -1738, -1738, -1738, -1738, -1738, 1500, - 1184, -1738, 1429, -1738, 1787, -1738, -1738, -1738, 864, -1738, - 1211, 961, -1738, 81, 716, 647, 111, 111, 4418, 487, - 1176, 862, 1699, -1738, -1738, 1831, -1738, 1660, -1738, -1738, - -1738, -1738, 1586, -1738, 1025, 93, 715, 849, 1404, 1717, - -1738, 1412, 1211, 832, -1738, 241, -1738, -1738, -1738, 4546, - 1232, 715, -1738, -1738, -1738, -1738, -79, 1025, 4418, 520, - 1441, 1836, 1025, 633, -1738, -1738, -1738, 1539, 1540, -1738, - -1738, 1137, -1738, 7, -1738, -42, -1738, -1738, -1738, 1232, - 1679, -1738, -1738, 1253, -1738, -1738, 1232, -1738, -1738, -1738, - -1738, 1543, 1154, 1232, 1709, -1738, -1738, 1543, -1738, 1253, - -1738, -1738, -1738, -1738, -1738, 1025, -1738, 1025, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, 1025, -1738, -1738, - 1708, -1738, 1647, -1738, 647, 1381, 647, -1738, 1210, -1738, - -1738, 929, 878, 878, 1355, 1355, 1355, -1738, 1141, 1451, - -1738, 1025, -1738, 1564, -1738, -1738, 1626, -1738, -1738, -1738, - 1232, -1738, -1738, 1232, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, 43, -1738, -1738, -1738, 1675, -1738, -1738, -1738, 115, - 115, 115, -1738, -1738, -1738, -1738, -1738, 1245, 1384, 5124, - -1738, 1025, 1245, 1245, 5171, -1738, 1245, 1245, 1245, 85, - 1245, 1245, -1738, -1738, 1590, 4418, -1738, 111, -1738, -1738, - 484, 738, -1738, -1738, 3705, -1738, 663, 36, -1738, -1738, - -1738, -1738, 1048, -1738, 1528, -1738, 1510, -1738, -1738, -1738, - -1738, -1738, -1738, 472, 472, 472, 472, 1232, -1738, -1738, - -1738, -1738, 1193, 1232, -1738, -1738, -1738, -1738, 113, -1738, - 1182, -1738, -1738, -1738, -1738, -1738, -1738, 4546, -1738, 4546, - 120, -1738, -1738, -1738, 3088, -1738, 1025, 1735, 1426, 788, - 1753, 1427, 204, 1211, -1738, -1738, 1815, -1738, -1738, -1738, - -1738, 961, -1738, 1690, -1738, 1232, 1587, -1738, -1738, 1381, - 111, -1738, 4546, 142, 483, -1738, -1738, -1738, 1025, 4546, - 565, -1738, -1738, -1738, 1725, 1604, -1738, 1726, -1738, 1630, - -1738, -1738, -1738, -1738, 1412, -1738, -1738, -1738, 1609, 1729, - 1591, 1575, 1384, -1738, 4546, 204, -1738, 1592, -1738, 1211, - -1738, 1761, 1485, -1738, -1738, 1134, -1738, 800, 1874, -1738, - 1032, -1738, -1738, -1738, 1253, 1766, 1663, 1817, 5002, 220, - 1232, -1738, -1738, 220, -1738, 1232, 1293, -1738, -1738, -1738, - 1444, -1738, -1738, -1738, 1232, -1738, -1738, -1738, 1232, -1738, - -1738, -1738, -1738, 220, 220, 66, 66, -1738, -1738, -1738, - -1738, -1738, 1450, -1738, 1200, -1738, -1738, -1738, 929, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, 1184, 1731, 1184, 1733, -1738, -1738, 4546, -1738, -1738, - -1738, -1738, -1738, 1762, -1738, -1738, -1738, -1738, -1738, -1738, - 1626, 1626, 1626, 1626, 220, -1738, -1738, 220, 66, 66, - -1738, -1738, -1738, 4418, 1562, 4418, 1567, -1738, -1738, -1738, - -1738, -1738, 1756, -1738, 788, -1738, 1794, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, 204, 1137, -1738, -1738, 1137, -3, - 1025, -1738, 1232, 4418, -1738, -1738, 928, 3713, -1738, 1849, - 1659, 1683, 444, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, 1025, 1165, -1738, -1738, - -1738, 1760, 1645, 1025, 1450, 4418, -1738, 1836, -1738, 1374, - 1811, 1374, 1591, 664, -1738, -1738, 1759, -1738, 1646, -1738, - -1738, -1738, 415, -1738, -1738, 1232, 1823, 1694, -1738, 1099, - -1738, 1713, 1118, 1492, 1727, 1480, 1232, 1142, 1232, 1025, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, 1530, -1738, -1738, -1738, -1738, 836, -1738, -1738, - -1738, -1738, -1738, -1738, 542, -1738, 555, -1738, -1738, 1444, - -1738, 1025, 524, -1738, -1738, -1738, 220, -1738, -1738, -1738, - -1738, -1738, -1738, 1184, -1738, 1184, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, 4546, -1738, 4546, -1738, -1738, -1738, -1738, -1738, 1872, - 1137, 1137, -1738, 1516, 1616, 862, 413, -1738, -1738, -1738, - -1738, 1580, 4546, -1738, 1232, 895, 1685, -1738, 1687, -1738, - -1738, -1738, -1738, -1738, -1738, 1025, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - 1025, 1374, -1738, 1025, 1783, -1738, -1738, -1738, -1738, -1738, - 862, -1738, -1738, -1738, -1738, -1738, -1738, -1738, 1121, 1253, - 1232, 1232, 1757, -1738, 1232, -1738, -1738, -1738, -1738, 187, - -1738, 1232, -1738, 1025, 1025, 1091, 1754, -1738, 1642, 1253, - 836, -1738, -1738, -1738, -1738, -1738, -1738, 220, -1738, -1738, - -1738, -1738, 220, -1738, 1025, -1738, 1121, -1738, -1738, -1738, - -1738, 1450, 1450, -1738, 4546, 1137, -1738, 4546, 1232, 862, - 862, 1625, -1738, 1025, -1738, 1513, 1025, 1793, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, 1025, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, 1253, 1253, 1232, - -1738, 1253, -1738, 1253, -1738, 1384, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, 4546, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, 114, 862, 1232, - -1738, -1738, 1025, -1738, -1738, -1738, -1738, -1738, -1738, 1253, - -1738, -1738, -1738, 1889, -1738, 114, -1738, -1738, 4546, -1738, - -1738 + -1768, 314, 499, -1768, -173, -152, 262, -1768, -1768, -1768, + 541, 541, 420, 420, -1768, -1768, 530, -1768, -1768, -1768, + -1768, 740, 740, 520, 693, 693, 657, 539, -1768, 956, + 925, -1768, -1768, -1768, -1768, -32, 666, 999, 576, 775, + 775, -1768, 593, 54, 635, 660, 797, 692, -1768, 332, + 1054, 849, 1105, -1768, -110, -1768, -1768, 892, -1768, -1768, + -1768, 792, -1768, -1768, -1768, 900, 817, -1768, 60, -1768, + 481, 541, 420, -1768, -1768, -1768, -1768, 808, -1768, 1138, + 340, 833, 959, 1086, 885, -1768, -1768, 998, 420, -1768, + -1768, -1768, 887, 895, 898, 899, 901, -1768, -1768, -1768, + -1768, -1768, 988, 906, 1147, 948, 960, 818, -1768, -67, + -1768, -1768, -1768, 59, -1768, -1768, 909, 1013, 1135, -1768, + 19, 1002, -1768, 67, 67, 929, 919, 920, 693, -1768, + 604, 1195, 119, 1708, 1096, -1768, -1768, 926, -1768, 1102, + 1106, 984, 1124, 993, -1768, 1008, -1768, -1768, -1768, 1386, + -1768, -1768, -1768, -1768, -1768, -1768, 957, 1057, 1090, -1768, + 885, -1768, -1768, -1768, -1768, -1768, 28, -1768, -132, -114, + 128, -1768, -1768, -1768, -1768, 1056, 1205, -1768, 519, -1768, + 618, -1768, -1768, -1768, -1768, 225, 148, -1768, -49, -1768, + -1768, -1768, 971, 219, 1326, 1001, 1205, 1205, 1001, 1051, + 1077, 1205, 1205, 1205, 1205, 1205, 1001, 1205, 1389, 1205, + -1768, 907, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, 1001, 988, 340, 1006, -1768, + 1006, 1006, -1768, 1218, 1006, -1768, 1370, -1768, 1286, 19, + 1002, -1768, 1009, 1107, 1120, 1002, 167, 1104, 1293, -1768, + 1205, 1101, 1191, -1768, -1768, 1368, 775, 1205, 1246, -1768, + 634, -1768, -1768, 1117, -1768, 1205, 1273, -1768, 746, -1768, + -1768, -1768, -1768, 1030, 1237, -1768, -1768, 1001, 1001, 1205, + 1205, -1768, 1205, 1006, 1420, 1001, 1001, 1006, 1205, 1006, + -1768, 1001, 85, -1768, -1768, -1768, -1768, 722, 1006, -1768, + -1768, 1006, 1209, 1081, 1212, -1768, 885, -1768, 885, -1768, + -1768, 1002, -1768, 1038, 1139, -1768, -1768, -1768, 1104, -1768, + -1768, -1768, -26, -2, -1768, -1768, 1370, 1205, 964, 964, + 1205, 35, 1247, 1205, 1478, 1231, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, 586, 164, 1205, + -1768, 1071, 1055, -1768, 849, 1246, -1768, -1768, -1768, -1768, + 1006, -1768, -1768, -1768, -1768, -1768, 1205, -1768, -1768, 861, + 1006, 1278, -1768, -1768, -1768, -1768, -1768, 1006, -1768, -1768, + 80, -1768, -1768, 902, -1768, -1768, -1768, -1768, 1006, -1768, + 1006, 1238, 1006, 885, -1768, 1220, 885, -1768, -1768, 1002, + -1768, 1070, -1768, -1768, 1438, -1768, 1439, -1768, -1768, 1246, + 1094, 1205, 1478, 1006, -58, 1, 1246, 1092, -1768, 1205, + 1098, -1768, 1098, -27, -1768, -1768, -1768, -1768, -1768, 1246, + -1768, -1768, -1768, 500, 97, -1768, 1284, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, 861, -1768, 1126, -1768, -1768, -1768, + -1768, -1768, -1768, 1246, -1768, -1768, 902, -1768, 1154, -1768, + 994, -1768, 1006, 1006, 1006, -1768, 1246, -1768, -1768, -1768, + 1227, -1768, -1768, 913, 1110, 1145, -1768, -1768, -1768, 1006, + -1768, -1768, -1768, -1768, -1768, -1768, 1315, 94, 1356, 1115, + -1768, -1768, -1768, 1205, 1205, -1768, -1768, 2639, 420, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, 594, -1768, 79, -1768, 861, 1246, + -1768, -1768, -1768, 1205, 902, -1768, 1247, 1239, 1157, -1768, + 1200, 1247, 1347, 1205, 1512, 84, 183, 25, -1768, 1133, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, 1194, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + 1205, 1006, -1768, 1098, -1768, 1227, -1768, -1768, 2376, 1548, + 1391, 166, -1768, 1246, 195, -1768, -1768, -1768, 1246, -1768, + -1768, 1208, -1768, 406, 406, 2781, -1768, 1128, -1768, -1768, + -1768, -1768, 1229, 3444, 1132, -1768, -1768, 594, -1768, -1768, + 1001, -1768, 1205, 1347, -1768, 862, -1768, 1205, -1768, 1205, + 979, -1768, 1205, -1768, 1205, 1225, 1205, 1205, -1768, 1386, + 138, 1205, 1156, -1768, -1768, 1373, -1768, 1376, -1768, -1768, + 738, 772, 780, 786, 791, 1164, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, 1258, -1768, -1768, 1246, -1768, + -1768, -1768, -1768, 1006, 1006, 1393, -1768, -1768, -1768, 5, + -1768, -1768, -1768, 1205, 1205, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, 829, -44, -1768, 1068, -1768, 631, -1768, -1768, + -1768, -1768, 82, 1389, -1768, 741, -1768, -1768, -1768, -1768, + 1496, -1768, 1372, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, 1204, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, 1157, -1768, 2126, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, 536, -1768, -1768, 1304, -1768, -1768, -1768, -1768, + 171, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, 713, -1768, -1768, + 282, 1205, -1768, -1768, 480, 112, 1006, 1574, -1768, -1768, + 1, 1240, -1768, 1006, 1006, -1768, 1331, 1331, 1342, -1768, + 1006, -1768, 114, -26, -1768, -1768, 1373, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + 1178, -1768, -1768, 1228, -1768, 1175, 1242, -1768, -1768, -1768, + -1768, 2582, 631, 1613, -1768, 1287, 1287, 861, 1124, 1124, + -1768, -1768, 1192, -1768, 631, -1768, 1255, -1768, -1768, -1768, + -1768, -1768, 115, 1483, -1768, -1768, 1145, 1246, 1203, -1768, + 1206, 1006, 4113, 1217, 419, 2048, 1654, -1768, 4710, 885, + 1262, 4790, 4710, 1433, -133, 790, 66, 1006, -1768, -1768, + 1534, -1768, 66, 1006, 1448, 1006, 4193, 4710, -1768, 2496, + 885, 1006, 885, 1006, 77, 92, 1006, 885, -1768, -1768, + 4243, 4372, -1768, -1768, 1006, 1006, 885, 1006, -1768, 663, + 1564, 1006, -1768, -1768, -1768, -1768, -1768, -1768, 1656, -1768, + -1768, -1768, -1768, -1768, 1006, 139, 190, 109, 1233, -1768, + 1233, -1768, -1768, -1768, -1768, 303, -1768, -1768, -1768, -1768, + -1768, 1006, 1205, 1505, 1505, 166, -1768, -1768, -1768, -1768, + 1490, -1768, -1768, -1768, 1246, 1277, 5442, 1224, -1768, 1006, + -1768, -1768, 1447, -1768, 1512, -1768, -1768, -1768, 1006, 1006, + 861, 1164, -1768, 631, 1, 1, 1655, 1389, -1768, -1768, + -1768, 1560, 153, -1768, 1124, 1230, 1006, 1232, 1241, 1124, + 722, 1245, 1251, 1253, 1257, 1259, 1266, 1268, 1269, 1232, + 1569, -1768, 4434, -1768, -1768, -1768, -1768, 1495, -1768, 1646, + -1768, -1768, -1768, 1317, -1768, 722, -1768, -1768, 1295, -1768, + -1768, -1768, 452, 885, 1608, 2060, -1768, 1392, 1422, 885, + 1023, 1607, 3872, 1040, 1076, 1610, 147, 1295, -1768, -1768, + 75, -1768, -1768, -1768, 1644, -1768, -1768, -1768, 1124, 66, + -1768, -1768, -1768, -1768, -1768, 1346, -1768, 62, 1006, -1768, + 39, -1768, -1768, -1768, -1768, -1768, 4710, -1768, 1343, 1615, + 1698, 724, -1768, 1351, -1768, 2670, 1616, 788, 1364, 1365, + -163, 1369, 680, 1588, -1768, 1422, 1588, 1006, 1626, 1334, + -1768, 842, -1768, -1768, -1768, -1768, -1768, 1523, -1768, 66, + -1768, 399, -1768, 83, -1768, -1768, -1768, 20, 1724, 4002, + -1768, -1768, 1006, 1628, 4456, 1006, 1595, 982, 1665, -1768, + 1446, 1400, 1106, 1588, 713, 303, -1768, 1339, -1768, 1006, + -6, -1768, -1768, -1768, 1205, 1660, -1768, -1768, -1768, -1768, + -1768, -1768, 452, -1768, -1768, 1006, -1768, 1246, 1373, -1768, + -1768, -1768, -1768, 1672, 1124, 5442, 5442, 5442, 4, 939, + -1768, -1768, -1768, 1192, -1768, 5442, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, 1427, -1768, -1768, 1315, 1, 1680, -1768, + -1768, 842, 299, 1354, 460, 393, 5442, 1395, 5442, -1768, + 5442, -1768, 1926, 1357, 5442, 5442, 5442, 5442, 5442, 5442, + 5442, 5442, -1768, -1768, -1768, 4710, 1609, -1768, -1768, 1459, + 1495, 1771, 3129, 1492, 1570, -1768, 472, -1768, -1768, -1768, + 694, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + 806, 885, -1768, -1768, 529, 1645, 1645, 1645, 1645, -1768, + -1768, 4710, 4710, -1768, -1768, 113, 1675, 868, -1768, 1374, + -133, -1768, 1006, -1768, 136, -1768, -1768, 911, 1639, -1768, + 842, 90, -1768, 39, -1768, -1768, -1768, -1768, 144, 1408, + 66, -1768, -1768, 4710, -1768, -1768, -1768, -1768, 1451, -1768, + -1768, -1768, -1768, 1006, 419, -1768, 1059, -1768, -1768, 1422, + 452, -1768, 1603, 378, 251, -1768, -1768, 1006, 251, 1411, + -1768, 1192, -1768, -1768, 64, 902, -1768, -1768, 3922, -1768, + 1769, 1601, 4710, 4710, -1768, 4468, 1006, -1768, 1640, -1768, + -1768, 4710, 842, -1768, -1768, -1768, 1724, 1611, 1006, -1768, + 921, 51, 378, -1768, -1768, -1768, 1006, -1768, 1542, -1768, + -1768, -1768, 87, 1006, -1768, 1006, 1630, 1062, -2, -1768, + 5168, 1106, 912, 1926, 1371, 1371, 1119, -1768, -1768, -1768, + 5442, 5442, 5442, 5442, 5442, 5442, 5084, 939, -1768, 1157, + -1768, 1315, 1106, -1768, -1768, -1768, 1645, -1768, -1768, 1377, + 1381, -1768, 842, 1645, 1612, -1768, -1768, -1768, -1768, 1378, + 1645, 1558, 1558, 1558, 120, 1598, -1768, -1768, 453, -1768, + 30, 980, 1006, 966, 58, 1375, -1768, 1192, -1768, -1768, + 23, 1380, 1165, 177, 1382, 1187, 108, 110, 257, 1383, + 1196, 4696, 446, 4710, 66, -1768, 1493, -1768, -1768, -1768, + -1768, -1768, 1157, -1768, -1768, 1435, -1768, -1768, 1435, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, 1440, 419, -1768, 22, 1006, 1006, 512, -1768, + -1768, -1768, 567, 776, 1465, -1768, -1768, 1710, -1768, 1576, + -1768, 104, 1361, 1645, 1575, -1768, -1768, 1580, -1768, -1768, + -1768, 1659, 4696, 474, -1768, -1768, -1768, 3033, -1768, 1452, + -1768, -1768, -1768, -1768, -1768, 113, -1768, -1768, -1768, 1106, + -1768, -1768, -1768, 1157, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, 1516, 1157, -1768, 1445, -1768, 1802, -1768, -1768, -1768, + 880, -1768, 842, 1087, -1768, 225, 31, 615, 66, 66, + 4696, 479, 1133, 885, 1715, -1768, -1768, 1846, -1768, 1676, + -1768, -1768, -1768, -1768, 1603, -1768, 1006, 528, 806, 871, + 1419, 1732, -1768, 1424, 842, 844, -1768, 453, -1768, -1768, + -1768, 4710, 1205, 806, -1768, -1768, -1768, -1768, -107, 1006, + 4696, 538, 1460, 1855, 1006, 651, -1768, -1768, -1768, 1559, + 1557, -1768, -1768, 1059, 87, -1768, 749, -1768, -1768, -1768, + -1768, 1205, 1694, -1768, -1768, 1246, -1768, -1768, 1205, -1768, + -1768, -1768, -1768, 1558, 1114, 1205, 2048, -1768, -1768, 1558, + -1768, 1246, -1768, -1768, -1768, -1768, -1768, 1006, -1768, 1006, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, 1006, + -1768, -1768, 1724, -1768, 1666, -1768, 615, 1347, 615, -1768, + 1192, -1768, -1768, 980, 827, 827, 1371, 1371, 1371, -1768, + 1244, 1467, -1768, 1006, -1768, 1580, -1768, -1768, 1645, -1768, + -1768, -1768, 1205, -1768, -1768, 1205, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, 14, -1768, -1768, -1768, 1378, -1768, -1768, + -1768, 452, 452, 452, -1768, -1768, -1768, -1768, -1768, 1232, + 1392, 5269, -1768, 1006, 1232, 1232, 5442, -1768, 1232, 1232, + 1232, 407, 1232, 1232, -1768, -1768, 1604, 4696, -1768, 66, + -1768, -1768, 760, 763, -1768, -1768, 3650, -1768, 699, 159, + -1768, -1768, -1768, -1768, 1047, -1768, 1540, -1768, 1529, -1768, + -1768, -1768, -1768, -1768, -1768, -11, -11, -11, -11, 1205, + -1768, -1768, -1768, -1768, 1163, 1205, -1768, -1768, -1768, -1768, + 52, -1768, 1361, -1768, -1768, -1768, -1768, -1768, -1768, 4710, + -1768, 4710, 113, -1768, -1768, -1768, 3033, -1768, 1006, 1751, + 1442, 866, 1768, 1449, 469, 842, -1768, -1768, 1833, -1768, + -1768, -1768, -1768, 1087, -1768, 1711, -1768, 1205, 1600, -1768, + -1768, 1347, 66, -1768, 4710, 138, 488, -1768, -1768, -1768, + 1006, 4710, 425, -1768, -1768, -1768, 1742, 1625, -1768, 1749, + -1768, 1652, -1768, -1768, -1768, -1768, 1424, -1768, -1768, -1768, + 1631, 1750, 1614, 1597, 1392, -1768, 4710, 469, -1768, 1617, + -1768, 842, -1768, 1786, 1506, -1768, -1768, 1106, -1768, 886, + 1897, -1768, 1000, -1768, -1768, -1768, 1246, 1789, 1687, 1841, + 5185, 323, 1205, -1768, -1768, 323, -1768, 1205, 1277, -1768, + -1768, -1768, 1468, -1768, -1768, -1768, 1205, -1768, -1768, -1768, + 1205, -1768, -1768, -1768, -1768, 323, 323, 57, 57, -1768, + -1768, -1768, -1768, -1768, 1465, -1768, 1256, -1768, -1768, -1768, + 980, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, 1157, 1753, 1157, 1755, -1768, -1768, 4710, + -1768, -1768, -1768, -1768, -1768, 1783, -1768, -1768, -1768, -1768, + -1768, -1768, 1645, 1645, 1645, 1645, 323, -1768, -1768, 323, + 57, 57, -1768, -1768, -1768, 4696, 1586, 4696, 1589, -1768, + -1768, -1768, -1768, -1768, 1780, -1768, 866, -1768, 1816, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, 469, 1059, -1768, -1768, + 1059, 382, 1006, -1768, 1205, 4696, -1768, -1768, 918, 3658, + -1768, 1870, 1681, 1702, -8, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, 1006, 649, + -1768, -1768, -1768, 1777, 1657, 1006, 1465, 4696, -1768, 1855, + -1768, 1356, 1828, 1356, 1614, 438, -1768, -1768, 1778, -1768, + 1661, -1768, -1768, -1768, 757, -1768, -1768, 1205, 1838, 1709, + -1768, 1064, -1768, 1728, 1067, 1478, 1740, 1497, 1205, 1124, + 1205, 1006, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, 1544, -1768, -1768, -1768, -1768, 43, + -1768, -1768, -1768, -1768, -1768, -1768, 463, -1768, 796, -1768, + -1768, 1468, -1768, 1006, 631, -1768, -1768, -1768, 323, -1768, + -1768, -1768, -1768, -1768, -1768, 1157, -1768, 1157, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, 4710, -1768, 4710, -1768, -1768, -1768, -1768, + -1768, 1887, 1059, 1059, -1768, 1532, 1632, 885, 622, -1768, + -1768, -1768, -1768, 1596, 4710, -1768, 1205, 789, 1701, -1768, + 1703, -1768, -1768, -1768, -1768, -1768, -1768, 1006, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, 1006, 1356, -1768, 1006, 1795, -1768, -1768, -1768, + -1768, -1768, 885, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + 1111, 1246, 1205, 1205, 1770, -1768, 1205, -1768, -1768, -1768, + -1768, 166, -1768, 1205, -1768, 1006, 1006, 834, 1766, -1768, + 1662, 1246, 43, -1768, -1768, -1768, -1768, -1768, -1768, 323, + -1768, -1768, -1768, -1768, 323, -1768, 1006, -1768, 1111, -1768, + -1768, -1768, -1768, 1465, 1465, -1768, 4710, 1059, -1768, 4710, + 1205, 885, 885, 1643, -1768, 1006, -1768, 1524, 1006, 1812, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, 1006, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, 1246, + 1246, 1205, -1768, 1246, -1768, 1246, -1768, 1392, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, 4710, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, 419, + 885, 1205, -1768, -1768, 1006, -1768, -1768, -1768, -1768, -1768, + -1768, 1246, -1768, -1768, -1768, 1905, -1768, 419, -1768, -1768, + 4710, -1768, -1768 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -2791,7 +2791,7 @@ static const yytype_int16 yydefact[] = 0, 0, 1171, 1169, 0, 0, 0, 0, 1204, 1210, 0, 0, 137, 133, 138, 136, 134, 135, 124, 125, 202, 203, 201, 200, 0, 187, 188, 1552, 222, 221, - 222, 218, 246, 235, 236, 237, 239, 1566, 243, 244, + 222, 218, 246, 235, 236, 1485, 239, 1566, 243, 244, 245, 1391, 1540, 495, 495, 1542, 515, 487, 490, 491, 0, 579, 577, 458, 0, 1590, 0, 1436, 1437, 0, 393, 460, 0, 387, 1524, 429, 430, 1446, 0, 0, @@ -2811,203 +2811,203 @@ static const yytype_int16 yydefact[] = 1110, 0, 1376, 0, 1115, 1133, 1147, 1148, 1522, 0, 1153, 1155, 0, 1167, 0, 1173, 0, 1178, 1183, 1211, 0, 1212, 1560, 1228, 0, 1485, 196, 195, 186, 0, - 0, 220, 219, 1540, 212, 206, 1392, 214, 0, 496, - 492, 0, 493, 0, 485, 488, 581, 436, 1591, 437, - 1558, 0, 0, 0, 1354, 1352, 1417, 1357, 1411, 1415, - 1416, 0, 1438, 470, 389, 1499, 367, 366, 1448, 1573, - 466, 335, 1550, 0, 313, 769, 720, 1519, 0, 747, - 0, 0, 0, 0, 0, 1456, 1473, 1467, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1457, 778, - 771, 0, 0, 1401, 1488, 783, 1487, 1291, 0, 788, - 0, 793, 803, 1427, 817, 1426, 823, 834, 831, 836, - 835, 1290, 1369, 1497, 1370, 1570, 1277, 844, 877, 846, - 856, 1243, 1243, 1243, 1243, 886, 879, 0, 0, 888, - 1511, 1290, 914, 901, 897, 899, 1290, 921, 0, 1397, - 930, 1589, 935, 947, 0, 498, 0, 991, 976, 967, - 971, 973, 974, 975, 1122, 0, 0, 1013, 1009, 0, - 1021, 1018, 1020, 1019, 1022, 1029, 1032, 664, 1290, 0, - 0, 1039, 0, 1490, 1491, 1569, 0, 1065, 1049, 1072, - 1085, 1093, 1079, 0, 1085, 0, 1422, 1423, 1108, 1111, - 0, 0, 1377, 1106, 0, 1105, 0, 1135, 0, 0, - 1145, 0, 0, 1154, 0, 1168, 1163, 0, 0, 1179, - 1180, 1177, 1522, 0, 0, 1213, 0, 0, 1072, 126, - 1505, 0, 206, 204, 1486, 197, 198, 0, 225, 211, - 238, 0, 489, 494, 500, 510, 359, 516, 1577, 1560, - 431, 0, 1362, 1363, 0, 1355, 1356, 1441, 0, 0, - 0, 0, 0, 0, 0, 0, 1574, 1592, 334, 1550, - 1560, 312, 743, 734, 1243, 724, 731, 725, 727, 729, - 0, 1243, 0, 723, 730, 737, 736, 0, 1243, 1556, - 1556, 1556, 741, 742, 1419, 1418, 0, 1407, 1354, 1352, - 0, 0, 1354, 0, 1403, 1404, 1405, 1367, 1354, 0, - 0, 1354, 0, 0, 1354, 1354, 1354, 0, 0, 1250, - 1496, 0, 0, 781, 0, 1302, 1303, 1304, 1337, 1305, - 1592, 1341, 1346, 1586, 1312, 1349, 1586, 1330, 1309, 1319, - 1301, 1300, 1338, 1308, 1310, 1320, 1321, 1322, 1323, 1324, - 1339, 1293, 1342, 1344, 1325, 1326, 1327, 1328, 1329, 1296, - 1297, 1298, 1299, 1313, 1336, 1307, 1318, 1295, 1294, 1306, - 1315, 1316, 1317, 1314, 1331, 1332, 1333, 1334, 1335, 1292, - 0, 0, 1384, 799, 0, 0, 806, 828, 829, 822, - 824, 0, 1250, 1282, 1284, 841, 1278, 1279, 1280, 0, - 1597, 1243, 0, 1244, 849, 1246, 850, 847, 848, 0, - 1250, 1496, 909, 911, 910, 904, 906, 912, 915, 890, - 902, 898, 896, 1290, 664, 892, 1399, 1560, 929, 1380, - 664, 1592, 955, 956, 958, 960, 961, 957, 959, 950, - 1592, 946, 0, 992, 0, 994, 993, 995, 986, 987, - 0, 0, 972, 1124, 1562, 0, 0, 1006, 1250, 1496, - 1596, 0, 1033, 665, 1040, 1041, 1044, 0, 1036, 1235, - 1234, 1043, 1049, 1229, 0, 0, 1277, 0, 0, 0, - 1084, 0, 0, 0, 1109, 0, 1113, 1112, 1103, 0, - 1540, 1277, 1150, 1149, 1156, 1157, 1158, 0, 1250, 1496, - 0, 1483, 0, 1158, 1225, 1215, 1214, 1220, 0, 1222, - 1223, 1230, 1504, 1485, 199, 0, 208, 209, 207, 1540, - 502, 513, 514, 512, 518, 594, 1540, 585, 583, 584, - 586, 1556, 0, 1540, 0, 597, 589, 1556, 590, 0, - 593, 598, 596, 591, 595, 0, 592, 0, 580, 608, - 603, 606, 605, 604, 607, 582, 609, 0, 445, 446, - 1522, 434, 447, 443, 441, 1545, 439, 1412, 1413, 1414, - 1365, 1353, 1358, 1359, 1360, 1361, 1364, 1442, 0, 467, - 333, 0, 735, 1246, 726, 728, 1243, 732, 722, 762, - 1540, 751, 752, 1540, 763, 753, 754, 757, 767, 764, - 755, 0, 765, 756, 766, 748, 749, 721, 1557, 0, - 0, 0, 739, 740, 1421, 1406, 1420, 1468, 1496, 0, - 1472, 0, 1468, 1468, 0, 1465, 1468, 1468, 1468, 0, - 1468, 1468, 1251, 772, 1253, 1250, 784, 0, 1340, 1587, - 1343, 1345, 789, 787, 794, 795, 639, 0, 805, 804, - 1216, 1217, 809, 807, 0, 827, 0, 832, 664, 664, - 842, 840, 1281, 856, 856, 856, 856, 1540, 861, 874, - 875, 862, 0, 1540, 865, 866, 869, 867, 0, 868, - 858, 859, 851, 857, 664, 1247, 1242, 0, 880, 0, - 1290, 1290, 908, 664, 905, 900, 0, 938, 0, 0, - 962, 0, 0, 0, 988, 990, 0, 982, 998, 983, - 984, 977, 978, 998, 1116, 1540, 0, 1563, 1123, 1545, - 1007, 1010, 0, 0, 1024, 1034, 1031, 667, 0, 0, - 1051, 1050, 1266, 1268, 1068, 1263, 1264, 1075, 1073, 0, - 1290, 1086, 1290, 1080, 1088, 1101, 1102, 1104, 1492, 1142, - 1257, 0, 1496, 1164, 0, 0, 1484, 1184, 1185, 0, - 1188, 1191, 1195, 1189, 1221, 1560, 1224, 1236, 1508, 205, - 0, 226, 227, 223, 0, 0, 504, 0, 1577, 0, - 1540, 587, 588, 0, 611, 1540, 1590, 612, 610, 438, - 0, 432, 448, 444, 1540, 433, 440, 1443, 1540, 462, - 314, 1241, 733, 0, 0, 1286, 1286, 750, 745, 744, - 746, 1461, 1250, 1469, 0, 1481, 1466, 1459, 1479, 1460, - 1462, 1463, 1476, 1477, 1464, 1458, 664, 1254, 1249, 773, - 782, 1592, 0, 1592, 0, 796, 797, 0, 801, 800, - 802, 1218, 1219, 812, 810, 664, 825, 826, 1283, 1285, - 1243, 1243, 1243, 1243, 0, 863, 864, 0, 1286, 1286, - 860, 1245, 664, 1250, 1368, 1250, 1368, 907, 913, 903, - 931, 939, 941, 948, 951, 952, 1530, 963, 944, 949, - 998, 1424, 1425, 998, 0, 981, 979, 980, 985, 1126, - 0, 1564, 1540, 1250, 1023, 1017, 0, 666, 1045, 0, - 0, 1057, 0, 664, 664, 1069, 1067, 1265, 1076, 1071, - 1074, 1081, 664, 1090, 1089, 1493, 0, 0, 1143, 1134, - 1258, 1160, 1260, 0, 1250, 1250, 1175, 1483, 1187, 1538, - 1193, 1538, 1257, 0, 1273, 1275, 1239, 1237, 1270, 1271, - 1238, 1509, 0, 224, 501, 1540, 0, 506, 511, 1556, - 547, 567, 562, 1512, 0, 0, 1540, 1558, 1540, 0, - 517, 523, 524, 525, 534, 526, 528, 531, 519, 520, - 521, 527, 530, 548, 532, 535, 522, 0, 529, 533, - 1433, 602, 1431, 1432, 618, 601, 613, 623, 452, 449, - 450, 0, 0, 759, 758, 761, 0, 760, 774, 1470, - 1252, 664, 1348, 1592, 1351, 1592, 798, 813, 791, 664, - 808, 855, 854, 853, 852, 871, 870, 873, 872, 1248, - 882, 0, 881, 0, 664, 942, 936, 953, 1531, 0, - 997, 989, 998, 1000, 0, 0, 1129, 1125, 1120, 1011, - 1026, 0, 0, 1052, 1540, 1059, 0, 1053, 0, 1056, - 1267, 1269, 664, 1087, 664, 1136, 1137, 1138, 1139, 1140, - 1141, 664, 1161, 1152, 1261, 1256, 1159, 1166, 1165, 1186, - 0, 1538, 1190, 0, 1197, 1209, 1206, 1208, 1207, 1202, - 1205, 664, 664, 1240, 1227, 1272, 1233, 1232, 1547, 0, - 1540, 1540, 508, 546, 1540, 568, 566, 563, 564, 1542, - 556, 1540, 1290, 0, 0, 0, 0, 549, 0, 0, - 554, 557, 560, 621, 619, 620, 622, 0, 616, 614, - 615, 617, 0, 451, 442, 468, 1547, 1255, 1347, 1350, - 811, 1250, 1250, 940, 0, 996, 1001, 0, 1540, 1127, - 0, 0, 1117, 1119, 1025, 0, 0, 1062, 1060, 1061, - 1055, 1054, 1082, 1091, 1259, 664, 1192, 0, 1196, 1198, - 1182, 1274, 1276, 1548, 1549, 1231, 503, 0, 0, 1540, - 499, 0, 555, 0, 552, 1496, 550, 551, 541, 539, - 540, 542, 538, 543, 537, 536, 0, 561, 559, 558, - 600, 599, 1287, 884, 883, 954, 999, 0, 1130, 1540, - 1121, 1290, 1058, 1063, 1048, 1262, 1194, 505, 507, 0, - 545, 544, 565, 0, 1128, 0, 1046, 509, 0, 1131, - 553 + 0, 220, 219, 1505, 1540, 0, 212, 206, 237, 1486, + 1392, 214, 0, 496, 492, 0, 493, 0, 485, 488, + 581, 436, 1591, 437, 1558, 0, 0, 0, 1354, 1352, + 1417, 1357, 1411, 1415, 1416, 0, 1438, 470, 389, 1499, + 367, 366, 1448, 1573, 466, 335, 1550, 0, 313, 769, + 720, 1519, 0, 747, 0, 0, 0, 0, 0, 1456, + 1473, 1467, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1457, 778, 771, 0, 0, 1401, 1488, 783, + 1487, 1291, 0, 788, 0, 793, 803, 1427, 817, 1426, + 823, 834, 831, 836, 835, 1290, 1369, 1497, 1370, 1570, + 1277, 844, 877, 846, 856, 1243, 1243, 1243, 1243, 886, + 879, 0, 0, 888, 1511, 1290, 914, 901, 897, 899, + 1290, 921, 0, 1397, 930, 1589, 935, 947, 0, 498, + 0, 991, 976, 967, 971, 973, 974, 975, 1122, 0, + 0, 1013, 1009, 0, 1021, 1018, 1020, 1019, 1022, 1029, + 1032, 664, 1290, 0, 0, 1039, 0, 1490, 1491, 1569, + 0, 1065, 1049, 1072, 1085, 1093, 1079, 0, 1085, 0, + 1422, 1423, 1108, 1111, 0, 0, 1377, 1106, 0, 1105, + 0, 1135, 0, 0, 1145, 0, 0, 1154, 0, 1168, + 1163, 0, 0, 1179, 1180, 1177, 1522, 0, 0, 1213, + 0, 0, 1072, 126, 206, 204, 197, 198, 0, 225, + 211, 1504, 1485, 0, 489, 494, 500, 510, 359, 516, + 1577, 1560, 431, 0, 1362, 1363, 0, 1355, 1356, 1441, + 0, 0, 0, 0, 0, 0, 0, 0, 1574, 1592, + 334, 1550, 1560, 312, 743, 734, 1243, 724, 731, 725, + 727, 729, 0, 1243, 0, 723, 730, 737, 736, 0, + 1243, 1556, 1556, 1556, 741, 742, 1419, 1418, 0, 1407, + 1354, 1352, 0, 0, 1354, 0, 1403, 1404, 1405, 1367, + 1354, 0, 0, 1354, 0, 0, 1354, 1354, 1354, 0, + 0, 1250, 1496, 0, 0, 781, 0, 1302, 1303, 1304, + 1337, 1305, 1592, 1341, 1346, 1586, 1312, 1349, 1586, 1330, + 1309, 1319, 1301, 1300, 1338, 1308, 1310, 1320, 1321, 1322, + 1323, 1324, 1339, 1293, 1342, 1344, 1325, 1326, 1327, 1328, + 1329, 1296, 1297, 1298, 1299, 1313, 1336, 1307, 1318, 1295, + 1294, 1306, 1315, 1316, 1317, 1314, 1331, 1332, 1333, 1334, + 1335, 1292, 0, 0, 1384, 799, 0, 0, 806, 828, + 829, 822, 824, 0, 1250, 1282, 1284, 841, 1278, 1279, + 1280, 0, 1597, 1243, 0, 1244, 849, 1246, 850, 847, + 848, 0, 1250, 1496, 909, 911, 910, 904, 906, 912, + 915, 890, 902, 898, 896, 1290, 664, 892, 1399, 1560, + 929, 1380, 664, 1592, 955, 956, 958, 960, 961, 957, + 959, 950, 1592, 946, 0, 992, 0, 994, 993, 995, + 986, 987, 0, 0, 972, 1124, 1562, 0, 0, 1006, + 1250, 1496, 1596, 0, 1033, 665, 1040, 1041, 1044, 0, + 1036, 1235, 1234, 1043, 1049, 1229, 0, 0, 1277, 0, + 0, 0, 1084, 0, 0, 0, 1109, 0, 1113, 1112, + 1103, 0, 1540, 1277, 1150, 1149, 1156, 1157, 1158, 0, + 1250, 1496, 0, 1483, 0, 1158, 1225, 1215, 1214, 1220, + 0, 1222, 1223, 1230, 1485, 199, 0, 208, 209, 238, + 207, 1540, 502, 513, 514, 512, 518, 594, 1540, 585, + 583, 584, 586, 1556, 0, 1540, 0, 597, 589, 1556, + 590, 0, 593, 598, 596, 591, 595, 0, 592, 0, + 580, 608, 603, 606, 605, 604, 607, 582, 609, 0, + 445, 446, 1522, 434, 447, 443, 441, 1545, 439, 1412, + 1413, 1414, 1365, 1353, 1358, 1359, 1360, 1361, 1364, 1442, + 0, 467, 333, 0, 735, 1246, 726, 728, 1243, 732, + 722, 762, 1540, 751, 752, 1540, 763, 753, 754, 757, + 767, 764, 755, 0, 765, 756, 766, 748, 749, 721, + 1557, 0, 0, 0, 739, 740, 1421, 1406, 1420, 1468, + 1496, 0, 1472, 0, 1468, 1468, 0, 1465, 1468, 1468, + 1468, 0, 1468, 1468, 1251, 772, 1253, 1250, 784, 0, + 1340, 1587, 1343, 1345, 789, 787, 794, 795, 639, 0, + 805, 804, 1216, 1217, 809, 807, 0, 827, 0, 832, + 664, 664, 842, 840, 1281, 856, 856, 856, 856, 1540, + 861, 874, 875, 862, 0, 1540, 865, 866, 869, 867, + 0, 868, 858, 859, 851, 857, 664, 1247, 1242, 0, + 880, 0, 1290, 1290, 908, 664, 905, 900, 0, 938, + 0, 0, 962, 0, 0, 0, 988, 990, 0, 982, + 998, 983, 984, 977, 978, 998, 1116, 1540, 0, 1563, + 1123, 1545, 1007, 1010, 0, 0, 1024, 1034, 1031, 667, + 0, 0, 1051, 1050, 1266, 1268, 1068, 1263, 1264, 1075, + 1073, 0, 1290, 1086, 1290, 1080, 1088, 1101, 1102, 1104, + 1492, 1142, 1257, 0, 1496, 1164, 0, 0, 1484, 1184, + 1185, 0, 1188, 1191, 1195, 1189, 1221, 1560, 1224, 1236, + 1508, 205, 0, 226, 227, 223, 0, 0, 504, 0, + 1577, 0, 1540, 587, 588, 0, 611, 1540, 1590, 612, + 610, 438, 0, 432, 448, 444, 1540, 433, 440, 1443, + 1540, 462, 314, 1241, 733, 0, 0, 1286, 1286, 750, + 745, 744, 746, 1461, 1250, 1469, 0, 1481, 1466, 1459, + 1479, 1460, 1462, 1463, 1476, 1477, 1464, 1458, 664, 1254, + 1249, 773, 782, 1592, 0, 1592, 0, 796, 797, 0, + 801, 800, 802, 1218, 1219, 812, 810, 664, 825, 826, + 1283, 1285, 1243, 1243, 1243, 1243, 0, 863, 864, 0, + 1286, 1286, 860, 1245, 664, 1250, 1368, 1250, 1368, 907, + 913, 903, 931, 939, 941, 948, 951, 952, 1530, 963, + 944, 949, 998, 1424, 1425, 998, 0, 981, 979, 980, + 985, 1126, 0, 1564, 1540, 1250, 1023, 1017, 0, 666, + 1045, 0, 0, 1057, 0, 664, 664, 1069, 1067, 1265, + 1076, 1071, 1074, 1081, 664, 1090, 1089, 1493, 0, 0, + 1143, 1134, 1258, 1160, 1260, 0, 1250, 1250, 1175, 1483, + 1187, 1538, 1193, 1538, 1257, 0, 1273, 1275, 1239, 1237, + 1270, 1271, 1238, 1509, 0, 224, 501, 1540, 0, 506, + 511, 1556, 547, 567, 562, 1512, 0, 0, 1540, 1558, + 1540, 0, 517, 523, 524, 525, 534, 526, 528, 531, + 519, 520, 521, 527, 530, 548, 532, 535, 522, 0, + 529, 533, 1433, 602, 1431, 1432, 618, 601, 613, 623, + 452, 449, 450, 0, 0, 759, 758, 761, 0, 760, + 774, 1470, 1252, 664, 1348, 1592, 1351, 1592, 798, 813, + 791, 664, 808, 855, 854, 853, 852, 871, 870, 873, + 872, 1248, 882, 0, 881, 0, 664, 942, 936, 953, + 1531, 0, 997, 989, 998, 1000, 0, 0, 1129, 1125, + 1120, 1011, 1026, 0, 0, 1052, 1540, 1059, 0, 1053, + 0, 1056, 1267, 1269, 664, 1087, 664, 1136, 1137, 1138, + 1139, 1140, 1141, 664, 1161, 1152, 1261, 1256, 1159, 1166, + 1165, 1186, 0, 1538, 1190, 0, 1197, 1209, 1206, 1208, + 1207, 1202, 1205, 664, 664, 1240, 1227, 1272, 1233, 1232, + 1547, 0, 1540, 1540, 508, 546, 1540, 568, 566, 563, + 564, 1542, 556, 1540, 1290, 0, 0, 0, 0, 549, + 0, 0, 554, 557, 560, 621, 619, 620, 622, 0, + 616, 614, 615, 617, 0, 451, 442, 468, 1547, 1255, + 1347, 1350, 811, 1250, 1250, 940, 0, 996, 1001, 0, + 1540, 1127, 0, 0, 1117, 1119, 1025, 0, 0, 1062, + 1060, 1061, 1055, 1054, 1082, 1091, 1259, 664, 1192, 0, + 1196, 1198, 1182, 1274, 1276, 1548, 1549, 1231, 503, 0, + 0, 1540, 499, 0, 555, 0, 552, 1496, 550, 551, + 541, 539, 540, 542, 538, 543, 537, 536, 0, 561, + 559, 558, 600, 599, 1287, 884, 883, 954, 999, 0, + 1130, 1540, 1121, 1290, 1058, 1063, 1048, 1262, 1194, 505, + 507, 0, 545, 544, 565, 0, 1128, 0, 1046, 509, + 0, 1131, 553 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1738, -1738, -1738, -1738, 1933, -1738, -1738, -1738, 50, -1738, - -1738, -1738, -1738, -1738, 1588, -1738, -1738, -1738, 1235, -1738, - -1738, 37, 1918, -1738, -1738, 1890, 699, -1738, -1738, -1738, - -1738, -1738, 1755, 1814, -1738, -1738, 1771, 476, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, 1763, -1738, -1738, -1738, -1738, - 1741, -1738, -1738, -1738, -1738, -1738, 223, 622, -1738, -1738, - -1738, -1738, 1440, -1738, -1738, 1358, 802, -1738, -1738, -1738, - -1738, -1738, -1738, 1515, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, 1821, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, 598, -1738, - 591, 809, -1738, -1738, -1738, -1738, -1738, 1003, 67, -1738, - 1362, -1738, -1738, -1738, -1738, -1738, -1738, 118, -1738, -1738, - 1746, -1738, 1859, -1738, -1738, -1738, -1738, 1595, -1738, -1738, - 1864, 886, -1738, -1738, -1738, -1738, 1740, -1738, 1931, 1822, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, 1098, -1738, - -1738, -1738, 1397, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, 548, -1738, -1738, -1738, 1667, - -1738, -1738, -547, -1738, -1738, -308, -1738, -1738, -1738, -446, - -1738, -1738, -1738, -1738, -1738, -1738, -1338, -1310, 1125, -1285, - -1738, 79, -1738, -1738, -1738, 294, 297, -1738, 407, -1738, - 302, -1738, -124, -1282, -1738, -1738, -1276, -1738, -1270, -1738, - -1738, -1738, 1122, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, 1433, -1738, -1738, -1738, 1026, -1738, - -924, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -105, -1738, - -1738, -1738, -1738, -1738, -1738, -238, -1738, -1738, -1738, -1738, - 251, -1738, -1738, -1738, -1738, -1738, 1169, -1738, -1738, -1738, - -1738, -1738, -1738, 152, -1738, -1738, -1738, -1738, -1738, 1879, - 1086, -1738, 230, -1738, -1738, -1738, -1738, 1514, -1738, -1738, - -1738, -1738, -1738, -1738, -893, -1738, -1738, 154, -1738, -1738, - -1738, -1738, 950, 592, 595, -1738, -1738, 284, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, 956, -1738, -1738, 252, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -232, -1738, 215, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - 753, -1738, -1738, 757, -1738, -1738, -1738, -1738, 482, 213, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, 33, 755, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, 751, -1738, -1738, -1738, 201, - -1738, -1738, 465, -1738, -1738, -1738, -1600, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1247, 939, - -1738, -1738, 189, -1738, -1738, 446, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, 694, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, 731, -1738, 183, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, 931, - -1738, 936, -1738, -1738, 1143, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, 921, 430, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, 10, -1738, 435, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, -1738, -70, -1738, -1188, - -1738, -1738, -1283, -1116, -1152, -1738, 357, -1738, -1401, -1738, - -1738, -1738, -1738, 11, -1738, -1738, -1738, -1738, -104, -1738, - -1738, 207, -1738, -1738, -1738, -1738, 6, -1738, -435, -1737, - -1738, -1738, 550, -1738, -896, -1292, -873, -1190, -1738, -1738, - -1738, -1213, -1197, -1196, -1194, -1191, -29, -248, -264, -607, - -977, -885, 198, 963, -1048, -84, -1738, -1107, -1738, -830, - -1738, 835, -224, -227, -1738, -1738, -710, 623, -853, -988, - -199, -847, -1738, -1738, 464, -1058, -1216, -1001, -852, -960, - 389, -630, -195, -1738, 1096, -178, -673, -676, -312, -336, - -934, -1738, -1738, -1738, -1738, -1738, 1839, -1738, 439, 850, - -1738, -1738, -1738, -1710, 1229, 45, 1765, 797, -452, -1738, - 1022, -410, 1479, -1738, -631, -1738, -1119, 1108, -422, 411, - -1738, -1738, -713, -1738, -1309, -175, -568, -518, -153, -822, - -1738, 668, -1368, -820, -1094, -1738, 1280, 2047, -860, -1738, - -1738, -1738, -1738, -1738, -1738, -1738, 639, -1738, 192, -712, - 1111, -127 + -1768, -1768, -1768, -1768, 1952, -1768, -1768, -1768, 48, -1768, + -1768, -1768, -1768, -1768, 1605, -1768, -1768, -1768, 1236, -1768, + -1768, 50, 1938, -1768, -1768, 1909, 652, -1768, -1768, -1768, + -1768, -1768, 1772, 1832, -1768, -1768, 1788, 590, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, 1779, -1768, -1768, -1768, -1768, + 1757, -1768, -1768, -1768, -1768, -1768, 222, 636, -1768, -1768, + -1768, -1768, 1455, -1768, -1768, 1379, 816, -1768, -1768, -1768, + -1768, -1768, -1768, 1528, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, 1837, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, 610, -1768, + 602, 822, -1768, -1768, -1768, -1768, -1768, 1018, 81, -1768, + 1384, -1768, -1768, -1768, -1768, -1768, -1768, 124, -1768, -1768, + 1759, -1768, 1875, -1768, -1768, -1768, -1768, 1594, -1768, -1768, + 1876, 203, -1768, -1768, -1768, -1768, 1752, -1768, 1939, 1830, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, 1109, -1768, + -1768, -1768, 1412, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, 703, -1768, -1768, -1768, 1674, + -1768, -1768, -572, -1768, -1768, -315, -1768, -1768, -1768, -440, + -1768, -1768, -1768, -1768, -1768, -1768, -1336, -1334, 1137, -1333, + -1768, 89, -1768, -1768, -1768, 302, 306, -1768, 416, -1768, + 310, -1768, -116, -1331, -1768, -1768, -1328, -1768, -1323, -1768, + -1768, -1768, 1136, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, 1441, -1768, -1768, -1768, 1033, -1768, + -927, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -95, -1768, + -1768, -1768, -1768, -1768, -1768, -231, -1768, -1768, -1768, -1768, + -214, -1768, -1768, -1768, -1768, -1768, 1176, -1768, -1768, -1768, + -1768, -1768, -1768, 131, -1768, -1768, -1768, -1768, -1768, 1889, + 1084, -1768, 236, -1768, -1768, -1768, -1768, 1519, -1768, -1768, + -1768, -1768, -1768, -1768, -970, -1768, -1768, 157, -1768, -1768, + -1768, -1768, 955, 595, 597, -1768, -1768, 281, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, 952, -1768, -1768, 246, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -264, -1768, 211, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + 745, -1768, -1768, 752, -1768, -1768, -1768, -1768, 471, 208, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, 32, 744, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, 743, -1768, -1768, -1768, 191, + -1768, -1768, 457, -1768, -1768, -1768, -1568, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1174, 934, + -1768, -1768, 180, -1768, -1768, 437, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, 682, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, 714, -1768, 169, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, 922, + -1768, 917, -1768, -1768, 1127, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, 915, 417, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -3, -1768, 422, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, -1768, -387, -1768, -1191, + -1768, -1768, -1252, -1227, -1077, -1768, 344, -1768, -1376, -1768, + -1768, -1768, -1768, -1, -1768, -1768, -1768, -1768, -109, -1768, + -1768, 194, -1768, -1768, -1768, -1768, 0, -1768, -501, -1767, + -1768, -1768, 542, -1768, -965, -1299, -881, -1232, -1768, -1768, + -1768, -1226, -1224, -1207, -1205, -1204, 156, -151, -491, -675, + -1184, -853, 287, 950, -1035, -84, -1768, -1111, -1768, -829, + -1768, 828, -228, -147, -1768, -1768, -650, 606, -864, -996, + -141, -807, -1768, -1768, 458, -1052, -1677, -955, -870, -925, + 46, -620, -172, -1768, 1089, -156, -668, 366, -303, -615, + -890, -1768, -1768, -1768, -1768, -1768, 1831, -1768, -1105, 838, + -1768, -1768, -1768, -1708, 1213, 68, 1745, 782, -455, -1768, + 1011, -409, 1463, -1768, -656, -1768, -1084, 1093, -423, 882, + -1768, -1768, -719, -1768, -1362, -175, -567, -525, -170, -1057, + -1768, 691, -1343, -854, -1097, -1768, 1263, 2026, -606, -1768, + -1768, -1768, -1768, -1768, -1768, -1768, 623, -1768, 174, -712, + 1095, -126 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -3022,69 +3022,69 @@ static const yytype_int16 yydefgoto[] = 513, 514, 515, 807, 948, 516, 949, 215, 379, 380, 519, 216, 444, 445, 217, 218, 219, 220, 221, 222, 223, 48, 78, 80, 104, 102, 135, 385, 460, 543, - 544, 957, 814, 1158, 1365, 545, 953, 546, 1370, 1371, - 1646, 1165, 547, 548, 549, 550, 961, 1161, 1903, 551, + 544, 957, 814, 1158, 1366, 545, 953, 546, 1372, 1373, + 1647, 1167, 547, 548, 549, 550, 961, 1161, 1905, 551, 552, 553, 554, 555, 556, 557, 558, 829, 559, 138, 108, 109, 110, 111, 149, 112, 393, 394, 467, 113, 114, 31, 66, 154, 84, 239, 159, 120, 160, 121, - 164, 248, 337, 338, 691, 339, 1401, 886, 574, 340, + 164, 248, 337, 338, 691, 339, 1403, 886, 574, 340, 483, 341, 697, 342, 343, 692, 878, 879, 880, 881, 344, 345, 346, 83, 240, 161, 162, 163, 246, 321, 472, 474, 322, 323, 665, 405, 406, 569, 870, 324, 568, 666, 667, 668, 993, 669, 670, 671, 672, 673, - 1691, 674, 985, 1380, 1925, 1692, 1693, 1694, 1695, 1921, - 1696, 2119, 2120, 675, 676, 860, 677, 678, 679, 572, - 1001, 874, 875, 1929, 680, 681, 118, 311, 158, 399, - 244, 470, 564, 565, 566, 832, 977, 978, 1170, 1171, - 1088, 979, 1650, 1906, 2077, 2222, 2300, 1374, 1653, 1174, - 1377, 1908, 2098, 2099, 2315, 2100, 2101, 2102, 2103, 2306, - 2104, 2105, 2106, 2107, 2240, 2241, 2229, 2108, 2109, 2226, - 491, 315, 567, 625, 835, 836, 837, 1176, 1378, 1685, - 2252, 2247, 1686, 51, 255, 432, 87, 124, 123, 166, + 1693, 674, 985, 1382, 1927, 1694, 1695, 1696, 1697, 1923, + 1698, 2121, 2122, 675, 676, 860, 677, 678, 679, 572, + 1001, 874, 875, 1931, 680, 681, 118, 311, 158, 399, + 244, 470, 564, 565, 566, 832, 977, 978, 1174, 1175, + 1088, 979, 1652, 1908, 2079, 2224, 2302, 1376, 1655, 1178, + 1379, 1910, 2100, 2101, 2317, 2102, 2103, 2104, 2105, 2308, + 2106, 2107, 2108, 2109, 2242, 2243, 2231, 2110, 2111, 2228, + 491, 315, 567, 625, 835, 836, 837, 1180, 1380, 1687, + 2254, 2249, 1688, 51, 255, 432, 87, 124, 123, 166, 167, 168, 252, 351, 126, 353, 496, 497, 588, 589, - 590, 591, 592, 890, 1592, 1593, 1857, 593, 753, 754, - 891, 1011, 1209, 1422, 1423, 1418, 1735, 1736, 1206, 755, - 892, 1030, 1232, 1230, 756, 893, 1038, 1453, 757, 894, - 1511, 758, 895, 1242, 1513, 1774, 1775, 1776, 1516, 1782, - 1975, 1973, 2139, 2138, 759, 896, 1052, 760, 897, 1053, - 1519, 1520, 761, 898, 1054, 1248, 1251, 762, 763, 764, - 899, 1791, 765, 900, 766, 901, 1061, 1531, 1810, 1811, - 1259, 767, 902, 1065, 1266, 768, 903, 769, 904, 1070, - 1071, 1272, 1273, 1274, 1554, 1552, 1823, 1275, 1545, 1546, - 1822, 1549, 770, 905, 1077, 771, 906, 772, 907, 773, - 1083, 1558, 774, 909, 775, 911, 1560, 2002, 2154, 2156, - 776, 912, 1283, 1569, 1830, 2004, 2005, 2006, 2008, 777, - 913, 778, 914, 1090, 1289, 1290, 1291, 1581, 1841, 1842, - 1292, 1578, 1579, 1580, 1835, 1293, 2015, 2267, 779, 915, - 780, 916, 1097, 781, 917, 1099, 1298, 782, 918, 1101, - 1304, 1591, 2025, 783, 919, 1104, 1307, 1856, 1105, 1106, - 1107, 1595, 1596, 784, 920, 1605, 2031, 2175, 2277, 2334, - 785, 921, 786, 922, 2036, 787, 923, 1606, 2039, 788, - 789, 924, 1118, 2182, 1324, 1608, 2042, 1873, 1874, 2184, - 1322, 790, 925, 1123, 1124, 1125, 1126, 1336, 1127, 1128, - 1129, 1130, 791, 926, 1094, 2019, 1294, 2273, 1583, 1844, - 2166, 2272, 792, 927, 1337, 1621, 2046, 2049, 793, 1137, - 1136, 1340, 794, 930, 1139, 1140, 1880, 2193, 795, 931, - 1143, 1346, 796, 933, 797, 934, 798, 935, 799, 936, - 1351, 800, 937, 1353, 1887, 1888, 1633, 1890, 2060, 2202, - 2062, 2290, 801, 802, 939, 2209, 1151, 1356, 1637, 1783, - 1974, 1895, 803, 1639, 804, 805, 941, 1317, 1897, 2163, - 2066, 2214, 1712, 1534, 1535, 1814, 1816, 1992, 1763, 1764, - 1956, 1958, 2131, 2051, 2052, 2191, 2195, 2285, 1864, 1865, - 2033, 1866, 2034, 2067, 2068, 2211, 2069, 2212, 1525, 1526, - 1527, 1788, 1528, 1789, 2125, 1085, 1086, 1040, 1041, 1237, - 1238, 1484, 1485, 1486, 1487, 1488, 1184, 1388, 1429, 1031, - 1055, 1252, 1113, 1119, 396, 397, 1131, 1132, 1280, 1108, - 1044, 1045, 298, 299, 479, 1167, 486, 276, 1079, 1080, - 1032, 1057, 1187, 1426, 1745, 1843, 2010, 1063, 1109, 2111, - 1034, 1013, 855, 987, 988, 2113, 1035, 872, 873, 1036, - 1215, 1217, 1433, 1447, 1442, 1439, 247, 1889, 1363, 1235, - 1315, 2047, 225, 1254, 995, 388, 413, 1364, 265, 2072, - 1820, 422, 238, 685, 1210, 615, 169, 612, 291, 306, - 2159, 145, 308, 887, 581, 43, 453, 609, 2295, 577, - 1159, 419, 1739, 233, 230, 1848, 968, 185, 1256, 852, - 1397, 282, 683, 695, 523, 236, 1770, 1282, 1179, 605, - 850, 1532 + 590, 591, 592, 890, 1594, 1595, 1859, 593, 753, 754, + 891, 1011, 1213, 1424, 1425, 1420, 1737, 1738, 1210, 755, + 892, 1030, 1236, 1234, 756, 893, 1038, 1455, 757, 894, + 1513, 758, 895, 1246, 1515, 1776, 1777, 1778, 1518, 1784, + 1977, 1975, 2141, 2140, 759, 896, 1052, 760, 897, 1053, + 1521, 1522, 761, 898, 1054, 1252, 1255, 762, 763, 764, + 899, 1793, 765, 900, 766, 901, 1061, 1533, 1812, 1813, + 1263, 767, 902, 1065, 1270, 768, 903, 769, 904, 1070, + 1071, 1276, 1277, 1278, 1556, 1554, 1825, 1279, 1547, 1548, + 1824, 1551, 770, 905, 1077, 771, 906, 772, 907, 773, + 1083, 1560, 774, 909, 775, 911, 1562, 2004, 2156, 2158, + 776, 912, 1287, 1571, 1832, 2006, 2007, 2008, 2010, 777, + 913, 778, 914, 1090, 1293, 1294, 1295, 1583, 1843, 1844, + 1296, 1580, 1581, 1582, 1837, 1297, 2017, 2269, 779, 915, + 780, 916, 1097, 781, 917, 1099, 1302, 782, 918, 1101, + 1308, 1593, 2027, 783, 919, 1104, 1311, 1858, 1105, 1106, + 1107, 1597, 1598, 784, 920, 1607, 2033, 2177, 2279, 2336, + 785, 921, 786, 922, 2038, 787, 923, 1608, 2041, 788, + 789, 924, 1118, 2184, 1328, 1610, 2044, 1875, 1876, 2186, + 1326, 790, 925, 1123, 1124, 1125, 1126, 1340, 1127, 1128, + 1129, 1130, 791, 926, 1094, 2021, 1298, 2275, 1585, 1846, + 2168, 2274, 792, 927, 1341, 1623, 2048, 2051, 793, 1137, + 1136, 1344, 794, 930, 1139, 1140, 1882, 2195, 795, 931, + 1143, 1350, 796, 933, 797, 934, 798, 935, 799, 936, + 1355, 800, 937, 1357, 1889, 1890, 1635, 1892, 2062, 2204, + 2064, 2292, 801, 802, 939, 2211, 1151, 1360, 1639, 1785, + 1976, 1897, 803, 1641, 804, 805, 941, 1321, 1899, 2165, + 2068, 2216, 1714, 1536, 1537, 1816, 1818, 1994, 1765, 1766, + 1958, 1960, 2133, 2053, 2054, 2193, 2197, 2287, 1866, 1867, + 2035, 1868, 2036, 2069, 2070, 2213, 2071, 2214, 1527, 1528, + 1529, 1790, 1530, 1791, 2127, 1085, 1086, 1040, 1041, 1241, + 1242, 1486, 1487, 1488, 1489, 1490, 1188, 1390, 1431, 1031, + 1055, 1256, 1113, 1119, 396, 397, 1131, 1132, 1284, 1108, + 1044, 1045, 298, 299, 479, 1171, 486, 276, 1079, 1080, + 1032, 1057, 1191, 1428, 1747, 1845, 2012, 1063, 1109, 2113, + 1034, 1013, 855, 987, 988, 2115, 1035, 872, 873, 1036, + 1219, 1221, 1435, 1449, 1444, 1441, 247, 1891, 1168, 1239, + 1319, 2049, 225, 1258, 995, 388, 413, 1169, 265, 2074, + 1822, 422, 238, 685, 1214, 615, 169, 612, 291, 306, + 2161, 145, 308, 887, 581, 43, 453, 609, 2297, 577, + 1159, 419, 1741, 233, 230, 1850, 968, 185, 1260, 852, + 1399, 282, 683, 695, 523, 236, 1772, 1286, 1183, 605, + 850, 1534 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -3092,1142 +3092,1192 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 122, 258, 478, 687, 302, 194, 301, 304, 560, 908, - 1145, 1257, 871, 1056, 876, 408, 1594, 616, 617, 1341, - 1039, 277, 278, 854, 1332, 1504, 283, 284, 285, 286, - 287, 1072, 289, 300, 292, 300, 300, 940, 1942, 300, - 1679, 1505, 1506, 1048, 1507, 1033, 105, 1508, 998, 999, - 22, 1244, 1740, 1741, 1033, 1066, 372, 446, 1357, 1087, - 376, 882, 378, 1325, 1043, 579, 194, 1078, 1680, 1098, - 1100, 389, 1133, 347, 389, 348, 122, 1638, 833, 450, - 357, 1547, 355, 1141, 1033, 811, -1560, 1117, 300, 165, - 360, 1279, 300, 1681, 300, 1228, 1682, 1270, 1078, 1279, - 165, 1416, 1683, 300, 369, 370, 300, 371, 1684, 92, - 963, 1004, 1793, 377, 1573, 165, 1078, 1078, 877, 382, - 89, 1787, 1968, 1557, 1601, 127, 596, 305, 1717, 1360, - 500, 85, 446, 435, 1385, 1737, -1518, -1522, 290, 1818, - 165, 1542, 1424, 447, 263, 1279, 1536, 1537, 1538, 1402, - 449, 826, 410, 105, 493, 415, 417, 54, 420, 403, - 2070, 1574, 1419, 186, 1935, 300, 462, 1372, 464, 1419, - 428, 1385, 2054, -1560, 429, 300, 1385, 434, 950, 834, - 1360, 165, 300, 403, 41, 1233, 1385, 1851, 485, 991, - 14, 436, 52, 461, 1211, 300, 972, 300, 1122, 1218, - 1585, 876, 266, 689, 2164, 613, 598, 175, 865, 1900, - 450, 958, 481, 867, 1385, 1233, 1267, 1156, 480, 1862, - 300, -1596, 395, 973, 974, 63, -1596, 1883, 1572, 4, - 529, 475, -1596, 1631, 1988, 389, 477, 389, 487, 561, - 1078, 1092, 1121, 2018, 489, 1042, 1780, 1373, 55, 1295, - 19, 495, 1713, 3, 1449, 1318, 41, 253, 1278, 1713, - -1540, 530, -1596, 484, 1122, 250, 1713, 300, 300, 300, - 451, 884, 75, 839, 841, 520, 1330, 1901, 1575, 1902, - -190, 614, 362, -1435, 575, 1687, 41, 812, 562, 833, - 1630, 1540, 1141, 1910, 1201, 1202, 867, 1233, 570, 1915, - -191, 1308, -1522, 1425, 1042, 12, 1711, 363, 1952, 395, - 1189, 251, 468, 482, 1309, 1603, 1385, 13, 583, 584, - 176, 1794, 1588, 840, 842, 1360, 20, 16, 1576, 1286, - 1200, 813, 56, 696, 389, 1157, 1420, 868, 229, 986, - 1122, 599, 1279, 959, -1482, -1482, 1056, 817, 600, 41, - 1042, 1243, 1716, 1331, 818, 1333, 1863, 5, 610, 619, - 1381, 1969, 190, 1547, 1959, -1522, 300, 254, 1196, 1197, - 1628, 951, 1781, 4, 1385, 1203, -1522, 1268, 1522, 1186, - 1398, -632, 106, 1056, 1450, 622, 608, -1567, 698, 698, - 834, 1509, 538, 682, 1777, 688, 866, 1421, -190, 437, - 693, 451, 827, 1072, 1421, -1545, 55, 1173, 354, 608, - 2160, 64, 620, 2161, 1056, 1812, -1522, 259, -191, 952, - 1539, 1541, 1796, 960, 1386, -31, 494, 810, 975, 267, - 404, 2165, 815, 1932, 816, 297, 269, 820, 2279, 821, - 438, 823, 824, 1587, 264, 1327, 830, 439, 1361, 297, - 1559, 297, 1589, 1898, 407, 1602, 356, -1522, 1795, 856, - 828, 1386, 1056, 1826, 1766, 275, 1386, 1936, 690, 297, - 853, 1970, 1005, -630, 1765, -1522, 1386, 1744, -1540, 152, - 1598, 107, 437, 89, 63, 578, -1522, 1618, 861, 862, - 56, 1622, 1623, 1399, 1625, -632, 1953, -1518, 275, 1361, - 1629, 5, 190, 297, 1386, 1189, 1189, 1189, -1522, 597, - 297, 86, 869, 1613, -1522, 1189, 1577, 501, 1271, 440, - 297, 1387, 1836, 438, 1543, 981, -1522, 1640, 1544, 190, - 439, 1327, -1520, 867, 297, 594, 1189, 1989, 1189, 297, - 1189, 2128, 1435, 1854, 1189, 1189, 1189, 1189, 1189, 1189, - 1189, 1189, 297, 297, 1875, 997, 297, 297, 1747, 1050, - 190, 177, 2265, -1474, 1713, 883, 1056, -1522, 1287, 175, - 2091, 1920, 317, 1757, 1186, 1186, 1186, 1710, 1093, 1163, - 2043, 1427, 441, 1050, 1186, 1204, 955, -630, 1434, 962, - 976, 106, 2150, 485, 2152, 2342, 965, 966, 2092, 1279, - 2270, 1758, 440, 971, -190, 1186, 1386, 1186, -1596, 1186, - 1327, 442, -776, 1186, 1186, 1186, 1186, 1186, 1186, 1186, - 1186, 300, 2169, 2093, -191, 300, 2095, 1376, 300, 300, - 1547, 1288, 2096, -1545, 75, 300, 954, 1334, 2097, 88, - 1961, 1207, 2176, 23, 1361, -210, 297, 1819, 1556, 1385, - 1190, 356, 443, 2197, 2198, 1777, 262, 980, 1335, 1164, - 498, 1825, 297, 1122, 1386, 441, 1338, 1827, 2110, 2056, - 64, -1596, 1327, 492, 1852, 1688, 297, -1518, 26, 521, - 386, 1773, 176, 297, 2177, 1709, 928, -1567, 1198, 1609, - 107, -1596, 426, 1609, 442, 1389, 1390, 1391, 1392, 1046, - 1393, 2271, 1062, -1480, 2178, 1698, 30, 1884, 2216, 1008, - 18, 2224, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 437, - 1095, 65, 1185, -1596, 1110, 29, 1114, 1155, 1114, 1120, - 1367, 1095, 1144, 1850, 1327, 443, 262, 409, 1938, 1939, - 1940, -1596, 416, -1596, 1166, 1514, 1114, 601, 1768, 307, - 2200, 1697, 2203, 1389, 1390, 1391, 1392, 387, 1393, 300, - 438, -1478, 1689, -1596, 2030, 1529, 177, 439, 1962, 1050, - 91, 427, 1877, 1253, 956, 2013, 300, 485, 485, 1960, - 1530, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 310, 2243, - 33, 1208, 1111, 316, 1193, 150, 1746, 1168, 2162, 929, - 1562, 2063, 2248, 1563, 1564, -1596, 1177, 1784, 1253, 300, - 300, 5, 1914, 1941, 623, 1058, 2126, 2126, 1946, 1947, - 1339, 279, 1949, 1950, 1951, -1596, 1954, 1955, 175, 288, - 2205, 2058, 5, 175, 2186, 1253, 1112, 1368, 1115, 440, - 1993, 2244, 1995, 1135, -1518, 1190, 1190, 1190, 295, 1828, - 2187, 2188, 1147, 2189, 2249, 1190, 2190, 297, 1831, 398, - 2323, 2324, 1279, 2110, 2141, 2142, 2143, 2144, 1253, 2126, - 2126, 2206, 190, 1573, 1688, 2023, 1190, 34, 1190, 2207, - 1190, 2179, 1436, 325, 1190, 1190, 1190, 1190, 1190, 1190, - 1190, 1190, 2287, 75, 1963, 1978, 1979, 356, 75, 1515, - 367, 368, 441, -1534, 1327, 1327, 36, 2055, 374, 375, - 858, 32, -1518, 1530, 381, 384, 1846, 1382, 1383, 1384, - 1574, 1991, 1120, 885, 190, 119, -1534, 1395, 1523, 326, - 1999, 442, 1994, -1596, 1996, -1596, 1327, 38, 877, 1386, - 2304, 176, 1966, 843, 327, 424, 176, 469, 1998, 1300, - 1431, 1785, 2208, 2115, 2064, -1596, 1438, 1440, 1441, 1443, - 1284, 1689, 1446, 1448, 1366, 2217, 425, 1056, 437, 1246, - 1837, 1786, 443, 2123, 2124, 44, 485, 139, 1111, -1536, - 1561, 1524, 93, 1562, 328, 1746, 1563, 1564, 1369, 140, - 1301, 2245, 2246, 844, 307, 1375, 1163, 2041, 1302, 1056, - 845, 1847, -1596, 452, 2250, 2251, 190, 938, 300, 438, - 141, 49, 2029, 1523, 174, 2210, 439, 1838, 142, 1517, - 50, 1862, 1964, 53, 2145, 1403, 1404, 2146, 1389, 1390, - 1391, 1392, 859, 1393, -1518, 250, -1475, 1575, 261, 2346, - 2127, 1565, 1566, 358, 94, 1699, 1319, 847, 1690, -1540, - 846, 59, 1190, 1190, 1190, 1190, 1190, 1190, 1190, -991, - 1567, 1568, -210, 2130, 2065, 1219, 1524, 1405, 1654, 1406, - -1540, 1303, 356, 1189, 190, 297, 1164, 146, 1189, 60, - 2344, 251, 2140, 1358, 95, 1046, 96, 1576, 440, 1868, - 1240, 1149, 2147, 2148, 2238, 143, 41, 848, 2349, 2149, - -991, 329, 1313, 1407, 1408, 1409, 119, -991, 1523, 1869, - 356, 1518, 2218, 330, 62, 1046, 45, 2269, 1150, 1521, - 2136, 1116, 2185, 195, 1701, 1702, 1703, 1704, 1705, 1706, - 1708, 1845, 147, 148, 618, 2239, 190, 196, 197, 1153, - 2180, 2181, 1186, 1647, 1647, 1599, 863, 1186, 1314, 2183, - 1410, 441, 1411, -345, -345, 46, 437, 1327, 1863, 2012, - 1412, 1524, 1046, 47, 190, 1327, 2256, 864, 2170, 198, - 1644, 1867, 1600, 468, 503, 300, 300, 1924, 272, -991, - 442, 2308, 2309, 1428, 1839, 1068, 1879, 1432, 2171, 1069, - 1751, 504, 1607, 1754, 602, 1444, 1445, 438, 1759, 607, - 68, 331, 332, 61, 439, 1073, 1074, 2310, 199, 200, - 5, 201, 2012, 1327, 333, 1797, 334, 72, 1798, 1075, - 202, 443, 2328, 809, 1565, 1566, 1799, 1800, 1801, 1635, - 75, 1607, 505, 1636, 1413, 79, 1616, 10, 2257, 506, - 1617, 10, -991, 1567, 1568, 504, 2260, 81, 1122, 2132, - 82, 2134, 249, 411, 103, 412, 249, 1389, 1390, 1391, - 1392, 2263, 1393, 203, 204, 1076, 2261, 2234, 2262, 1394, - 454, -991, 455, 115, 205, 1577, 440, 1651, 1652, 942, - 1012, 1349, 525, 1350, 1049, 526, 505, 2320, 116, 2282, - 1064, 2283, 2321, 506, 117, 1081, 1082, 1271, 2284, 1550, - 527, 1081, 1089, 1091, 119, 507, -991, 1911, 1049, 1912, - 528, 508, -991, 1971, 1081, 1972, 1046, 335, 2291, 2292, - 943, 1460, 1461, 1089, 1146, 2275, 1148, 944, 1050, 1391, - 1392, 2022, 1393, 1389, 1390, 1391, 1392, 336, 1393, 441, - 1802, 2012, 319, 320, 263, 1749, 1985, 125, 1986, 206, - 1462, 1901, 2332, 1902, 2293, 2294, 1463, 129, 1803, 1389, - 1390, 1391, 1392, 134, 1393, 508, 130, 1700, 442, 1738, - 2223, 131, 1840, 132, 509, 1188, 1804, 133, 1389, 1390, - 1391, 1392, 136, 1393, 137, 2311, 2312, 1465, 2227, 2228, - 144, 1466, 2335, -1427, -1427, -1427, -1427, 155, 156, 945, - 171, 1414, 157, 297, 172, 1213, 437, 173, 186, 443, - 227, 224, 228, 1190, 229, 231, 1647, 2325, 1190, 232, - 2326, 2258, 234, 2259, 1805, 235, 2313, 2314, 509, 237, - 241, 510, 511, 242, 243, 1389, 1390, 1391, 1392, 257, - 1393, 1245, 1415, 1753, 512, 1878, 41, 438, 300, 2255, - 271, 274, 1014, 275, 439, 867, 1261, 1262, 1263, 1264, - 1919, 281, 946, 1853, 207, 280, 290, 297, 1081, 2343, - 303, 305, 1806, 307, 1904, 1907, 1081, 1285, 312, 313, - 314, 1909, 349, 529, 1930, 1944, 350, 352, 1913, 356, - 1948, 1916, 300, 359, 1049, 361, 364, 195, 512, 1881, - 365, 2350, 373, 390, 208, 391, 1881, 392, 400, 401, - 1326, 196, 197, 418, 530, 421, 300, 423, 1081, 431, - 430, 531, 1081, 448, 1945, 1807, 440, 463, 1015, 466, - 471, 1344, 947, -362, 1285, 1808, -1426, -1426, -1426, -1426, - 473, 488, 532, 198, 1017, 1933, 476, 518, 1934, 490, - 1389, 1390, 1391, 1392, 209, 1393, 300, 1245, 1756, 522, - 1089, 1980, 1981, 1982, 1983, 563, 571, 533, 576, 573, - 1188, 1188, 1188, 534, 580, 582, 1389, 1390, 1391, 1392, - 1188, 1393, 199, 200, 1761, 201, 603, 604, 606, 441, - 1389, 1390, 1391, 1392, 202, 1393, 1326, 1809, 1927, 608, - 535, 1188, 1249, 1188, 611, 1188, 621, 536, 684, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 190, 442, 686, - 537, 1480, 1984, 822, 1482, 1483, 694, 701, 1987, 702, - 1018, 831, 806, 319, 838, 849, 851, 203, 204, 857, - 888, 437, -843, 889, 264, 538, 932, 539, 205, 1389, - 1390, 1391, 1392, 297, 1393, 540, 613, 2129, 964, 443, - 967, 2302, 983, 970, 984, -215, 986, 992, 989, 994, - 2020, 1019, 1000, 2230, 1003, 1326, 1006, 1051, 1020, 1067, - 1009, 1037, 438, 1059, 1021, 1081, 541, 1022, 1010, 439, - 1084, 1152, 1169, 1154, 1175, 1178, 1160, 1194, 1597, 1191, - 877, 1205, 1212, 1214, 1216, 1245, 1719, 1220, 1720, 1234, - 1221, 1721, 1610, 1229, 1222, 1223, 1224, 1236, 1225, 1081, - 1023, 1722, 1239, 206, 1226, 1241, 2074, 2026, 1227, 1247, - 1255, 1626, 1253, 2032, 1258, 2114, 542, 1326, 1265, 1277, - 2116, 1281, 1296, 1634, 1297, 1299, 1306, -1429, 1310, 2121, - 1312, 1311, 1316, 2122, 1321, 1122, 1323, 165, 1345, 1348, - 1352, 440, 1285, 1354, 1455, 1456, 1457, 1355, -1553, 1379, - 468, 1400, 1458, 1396, 1417, 1430, 1451, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1510, 1437, 1452, 1042, 1024, 1533, - 1548, 1015, 1553, 2167, 1571, 1586, 1604, 1612, 1590, 1326, - 1619, 1620, 1627, 1632, 1642, 1645, 1649, 1017, 1714, 1393, - 1459, 1715, 1718, 1738, 1750, 1420, 1752, 1755, 1767, 1748, - 1760, 1769, 1772, 1762, 441, 300, 1790, 1524, 1813, 1815, - 1817, 1829, 1832, 1025, 1026, 1821, 1833, 1855, 207, 1858, - 1859, 1081, 1870, 1871, 1885, 1886, 1894, 2168, 1896, 1690, - 1872, 1723, 1905, 442, 1977, 1928, 1724, 1976, 1957, 1027, - 2001, 2003, 2009, 2007, 2014, 2017, 2035, 1863, 2038, 1725, - 2040, 2045, 2021, 2048, 2059, 2053, 2057, 1028, 208, 2061, - 2050, 2071, 2075, 2076, 2078, 1029, 2118, 2133, 297, 2135, - 2151, 2137, 2155, 1018, 443, 2153, 2158, 2254, 2172, 2173, - 2219, 2174, 1250, 1778, 1779, 2192, 2201, 2213, 1460, 1461, - 2065, 2233, 2194, 2235, 2220, 2221, 2225, 1726, 2232, 2231, - 2087, 2264, 2266, 2268, 2274, 2280, 300, 2281, 209, 2242, - 2289, 2299, 2329, 2333, 2316, 2317, 2331, 1462, 2348, 15, - 28, 293, 433, 1463, 74, 1047, 193, 1021, 273, 260, - 1022, 270, 294, 1614, 595, 808, 1359, 226, 1014, 517, - 1643, 867, 1648, 1162, 1362, 1727, 1464, 2073, 151, 1326, - 1326, 2024, 819, 296, 1465, 1081, 1081, 153, 1466, 309, - 67, 699, 245, 1023, 1007, 402, 990, 2094, 465, 1728, - 1926, 1923, 1849, 1861, 1922, 2253, 1002, 2237, 624, 2276, - 1172, 1326, 2319, 170, 1015, 982, 1967, 2307, 1467, 1468, - 585, 2027, 1260, 1729, 1469, 1743, 1882, 1742, 1730, 1937, - 1017, 1891, 1891, 1269, 1470, 1990, 1965, 389, 1731, 1555, - 1551, 1471, 1732, 1997, 1015, 1824, 1472, 2157, 1570, 300, - 1582, 2296, 2016, 1834, 1305, 2297, 2298, 2028, 1860, 2301, - 1017, 1024, 1641, 1049, 1473, 1611, 2303, 2044, 1328, 300, - 1343, 2318, 2242, 1892, 1917, 1329, 1918, 2199, 1893, 1134, - 1931, 2278, 2037, 2204, 2215, 1512, 910, 1792, 2330, 1876, - 1320, -934, 1899, 1192, -934, 318, 1454, -934, -934, -934, - 1733, 1584, 1276, 2327, 414, 996, 1025, 1026, 825, 1102, - 1734, 1615, 1195, 2322, 76, 1771, 1018, 969, 2117, 0, - 0, 0, 1199, 0, 0, 0, 0, 0, 0, 2337, - 2338, 0, 1027, 2340, 2339, 2341, 468, 0, 1245, 1245, - 1245, 0, 1046, -934, 0, 0, 1018, 0, 1188, 0, - 1028, 0, 0, 1188, 0, 0, 0, 437, 1029, 0, - 1046, 297, 0, 0, 2345, 0, 1081, -934, 1103, 0, - 1021, 2347, 0, 1022, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -934, 0, 0, 0, 1019, 0, 0, - 0, 0, 0, 0, 1020, 468, 0, 0, 438, 0, - 1021, 0, 0, 1022, 0, 439, 1023, 0, 0, 0, - 1474, 1475, 1476, 1477, 1478, 0, 1479, 0, 1480, 1481, - 0, 1482, 1483, 0, 0, 2000, 0, 0, 0, 0, - 0, 2011, 1326, 0, 0, 0, 1023, 0, 0, 0, - 1326, -934, -934, 0, 0, 0, 0, 0, 0, 1081, - 0, 0, 0, 0, 468, 0, 0, 1597, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -934, - -934, 0, 0, 0, 1024, 0, -934, 440, 0, 0, - -934, 0, 0, 0, 2011, 0, 0, 0, 1326, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -934, - 0, 0, 0, 0, 1024, 0, 0, -934, 2112, 0, - -934, -934, 2112, 0, 0, 0, 0, -934, 0, 1025, - 1026, -934, 0, -934, 0, 0, -934, 0, -934, -1596, - 0, 0, 2112, 2112, 0, 0, 0, 0, 0, 0, - 441, -934, -934, 0, 0, 1027, 0, -934, 0, 1025, - 1026, 0, 0, 0, 0, -1042, 0, -934, 0, -934, - 0, 0, 0, 1028, -934, 0, 1616, 0, -1042, 442, - 1617, 1029, 0, 190, 297, 1027, 0, 0, 0, 0, - 0, 0, 0, 2112, 0, 0, 2112, -934, 0, 0, - 0, 0, 0, 1028, 0, 0, 0, 0, 0, 0, - -934, 1029, 0, 0, 297, 0, 0, 0, 0, 0, - 443, 0, 0, 2011, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -934, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -357, 626, 0, 0, 1089, 0, 0, 0, 0, - 0, 0, 2196, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, -934, 0, 0, 0, 0, 0, 0, - 0, 2112, -934, -934, 0, 628, 0, 0, 629, 630, - 631, 632, 633, 634, 635, 0, 0, 0, 2236, 0, - 0, 0, -934, 0, 0, 0, 0, 0, -934, 0, + 122, 258, 301, 478, 687, 560, 194, 1145, 408, 908, + 616, 617, 1039, 1596, 998, 999, 1506, 871, 1507, 876, + 1336, 277, 278, 1072, 1261, 1048, 283, 284, 285, 286, + 287, 940, 289, 854, 292, 1508, 882, 1509, 1510, 1538, + 1539, 1540, 1944, 1549, 1681, 1056, 1682, 1683, 1087, 1684, + 1365, 1451, 1685, 833, 1345, 1361, 300, 1686, 300, 300, + 1640, 1133, 300, 22, 579, 1043, 446, 194, 1078, 1329, + 1078, 165, 1078, 347, 1387, 348, 122, 165, 811, 1742, + 1743, 105, 355, 1283, 302, 1033, 1117, 304, 1542, 1078, + 360, 1283, 1274, 1387, 1033, 1066, 596, 1248, 1078, 1575, + 1387, 1418, 357, 450, 369, 370, 165, 371, -1522, 1098, + 1100, 300, 877, 377, 85, 300, 165, 300, 89, 1590, + 305, 613, 92, 1141, 1033, 1603, 300, 54, 1387, 300, + -1518, 1290, 2072, 186, 1544, 1937, 372, 1283, 127, 1232, + 376, 446, 378, 493, 958, 403, 1576, 826, 1789, 1400, + 290, 389, 410, 500, 389, 415, 417, 266, 420, 1404, + 1215, 1719, 462, 1004, 464, 1222, 1820, 1630, 1739, 403, + 963, 52, -1560, 1990, 429, 972, 2056, 165, 1387, 865, + 1387, 382, 41, 1211, 106, 834, 1421, 63, 300, 450, + 2178, 436, 428, -1596, 991, 426, 1271, 614, 300, 434, + 1795, 1587, 973, 974, 1337, 300, 876, 1342, 492, 1163, + 2058, 253, 55, 435, 1853, 598, 461, 1374, 300, -1518, + 300, 481, 395, 447, 1282, 1237, -1596, 1156, 32, 858, + 449, 1848, 2179, -1596, 1368, 561, 477, 484, 1574, -1435, + 250, 480, 1121, 300, 489, 1970, 1092, 1387, 1375, 41, + 1559, 689, 2180, 475, 1885, 1237, -1596, -190, -1596, -1560, + 487, 356, 14, 1577, 833, 1334, 1163, 1649, 485, 1767, + 884, 1068, 1633, 495, 427, 1069, 959, 2020, -1534, 356, + 1050, 877, 12, 107, 1689, 618, 251, 1042, 263, 1299, + 300, 300, 300, -1522, 451, 986, 56, 520, 570, 1093, + 1632, 2240, 608, 13, 1050, 1713, 1814, 575, -191, 395, + 562, 1190, 468, 1578, 3, 389, 1849, 389, 583, 584, + 1912, 254, 482, 1549, 1405, 1406, 1917, 1387, 41, 1715, + 1383, 174, 1141, 1212, 190, 1204, 1715, 1237, 1283, 2164, + 1122, 1369, 2241, 1715, 1712, 1157, 307, -1522, 600, 623, + 1207, 859, 1122, -1522, 1205, 1206, 960, 1272, 610, 938, + 1718, 1343, 105, 599, 1388, 1605, 1407, 866, 1408, -632, + 1291, 1194, 1042, 64, 1524, -190, 55, -1518, 1200, 1201, + 451, 619, 1056, 1388, 267, 622, -1518, 354, 150, 300, + 1388, 1961, -1522, 682, -1482, -1482, 834, -1545, 827, 1072, + 356, 608, 1409, 1410, 1411, 950, 269, 975, 1177, 1796, + 2281, 698, 698, 620, 389, 494, 404, 688, 1388, 1056, + 1798, 1423, 693, -31, 229, 1163, -191, 810, 1452, 2181, + 1532, 1779, 815, 1292, 816, 1511, 1589, 820, 1938, 821, + 407, 823, 824, 297, 2162, 4, 830, 2163, -1520, 1412, + 1056, 1413, 1900, -1522, -1518, 1561, 828, -1522, 1768, 1414, + 56, 1389, 1828, -1522, 1541, 1543, 1934, 1615, 1388, -630, + 1388, -1540, 1391, 1392, 1393, 1394, 1991, 1395, 867, 597, + -1480, 89, 856, -632, 1971, 1600, 1338, 1749, 861, 862, + 1050, -1518, 853, 297, 86, 1189, 1591, 578, 1056, -1522, + 63, 1579, -1522, 190, 297, -1522, 297, 1339, 297, 1322, + 1190, 1190, 1190, 1275, 152, -1474, 690, 1545, 981, 297, + 1190, 1546, 275, 190, 1005, 297, 1421, 275, 1165, 297, + 1838, 1620, 1642, 1415, 297, 1624, 1625, 1388, 1627, 1901, + 501, 1190, 1426, 1190, 1631, 1190, 1797, 1122, 594, 1190, + 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1401, 1856, 356, + 190, 177, 1877, -1522, 997, 1759, 883, 1760, 2130, 976, + 1194, 1194, 1194, 5, 2093, 2045, 2094, 2095, 297, 2097, + 1194, -190, 2098, -630, 1208, 1165, 1827, 2099, 264, 2166, + 1549, 106, 1829, 1283, 1972, 1429, 2267, 955, 951, 2344, + 1056, 1194, 1436, 1194, 2207, 1194, 1378, 1438, 1922, 1194, + 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1388, -1596, 2152, + 88, 2154, 317, -1596, 2032, -1545, 1391, 1392, 1393, 1394, + 1954, 1395, -191, -776, -1478, 1995, 954, 1997, -1596, 498, + 867, 1715, 696, 1690, 300, 2208, 952, 1122, 300, 2171, + 23, 300, 300, 2209, 1864, 1042, 19, 980, 300, 1516, + 190, 1821, 1558, 18, 437, -1596, 1854, -1567, 1611, 962, + 2025, 1149, 1611, 485, 272, 1782, 965, 966, 521, 1164, + 2199, 2200, 4, 971, 1775, -1596, 64, 1711, 1247, 1746, + 107, 16, 1779, 1422, 1384, 1385, 1386, 1202, 1150, 2202, + 1416, 2205, 2057, 1427, 1397, 438, 1391, 1392, 1393, 1394, + 2245, 1395, 439, 1604, -1475, 1190, 1190, 1190, 1190, 1190, + 1190, 1190, 1046, 91, 1852, 1886, 2210, 1433, -1596, 1323, + 1691, 1008, 20, 1440, 1442, 1443, 1445, 65, 2226, 1448, + 1450, 1417, 307, 1095, 1165, -210, 601, 1110, -1596, 1114, + 1770, 1114, 1120, 424, 1095, 2143, 2144, 2145, 2146, 1166, + 1062, 1423, 2246, 1699, 175, 297, 1362, 26, 1701, 1114, + 262, 2112, 928, 1962, 425, 1194, 1194, 1194, 1194, 1194, + 1194, 1194, 300, 2015, 440, 956, 1940, 1941, 1942, 504, + 1144, 1865, 5, 1111, 1257, 30, 1916, 1172, -1596, 300, + 2065, 1783, 1335, 1786, 279, 1462, 1463, 1155, 1748, 2272, + 5, 5, 288, 1517, 1879, 1058, 2167, 1197, 1955, 190, + 1980, 1981, 1257, 2188, 1170, 2189, 437, 1257, 1181, 75, + 505, 295, 300, 300, 1464, 297, 1112, 506, 1115, 2060, + 1465, 2289, 2190, 1135, 2191, 2192, 1993, 441, 297, 175, + 262, 1830, 1147, 2128, 2128, 2001, 1283, 485, 485, 1943, + 1833, 297, -1596, 175, 1948, 1949, 190, 438, 1951, 1952, + 1953, 1467, 1956, 1957, 439, 1468, 442, 176, 1564, 175, + 119, 1565, 1566, 367, 368, 929, 1257, 2325, 2326, 1575, + 1304, 374, 375, 33, 297, 297, -1534, 381, 384, 1703, + 1704, 1705, 1706, 1707, 1708, 1710, 2128, 2128, 942, 508, + 2273, 297, 2247, 2248, 75, 1864, 1963, 443, 195, 1965, + 1563, 885, 386, 1564, 2310, 2311, 1565, 1566, 75, 190, + 119, 1305, 196, 197, -1596, 2306, 1576, 1012, 1317, 1306, + 1690, 1049, 2000, 310, 75, 1120, 440, 1064, 316, 943, + 2312, -1596, 1081, 1082, -1596, 1531, 944, 362, 1081, 1089, + 1091, 1288, 176, 2219, 198, 1049, 1996, -1567, 1998, 1250, + 1532, 1081, 509, 2129, 259, 29, 176, -1536, 1968, 1111, + 1089, 1146, 363, 1148, 1318, 812, 452, 1367, 2132, 1370, + 2117, 2043, 176, 356, 34, 525, 863, 1748, 526, 387, + 1902, 1056, 1525, 199, 200, 1122, 201, 2142, 139, 441, + 2125, 2126, 1307, 527, 398, 202, 1787, 864, 1519, 1525, + 140, 1377, 44, 528, 2151, 2149, 2150, 1691, 945, 813, + 2212, 49, 1192, 1056, 2348, 300, 1788, 437, 442, 36, + 2066, 141, 512, 2250, 1964, 38, 177, 1966, 53, 142, + 2218, 1050, 1865, 1577, 2031, 1526, 437, 263, 203, 204, + 485, 2147, 1217, 1656, 2148, 2182, 2183, 1601, 1903, 205, + 1904, 250, 1526, 261, 2185, -991, 1190, 867, 438, 443, + 1637, 1190, 50, 93, 1638, 439, 1073, 1074, 1223, 358, + 59, 946, 190, 297, 1602, 2251, 1839, 438, 1249, 1525, + 1075, -1540, 469, 1578, 439, 1482, 839, 1869, 1484, 1485, + 1520, 1870, 1046, 1244, 1692, 60, -991, 251, 868, 1567, + 1568, 2187, 1881, -991, 1523, 1081, 143, 41, 2313, 2314, + 1847, 1871, 2271, 1081, 1289, 190, 1194, 146, 1569, 1570, + 841, 1194, 1046, 1840, 206, 94, 1076, 62, 843, 2220, + 2067, 1049, 1526, 61, 845, 2346, 840, 440, 2172, 847, + 5, 947, 2138, 2259, 1567, 1568, 2014, 1330, 45, 2315, + 2316, 2262, 1926, 2351, 68, 1081, 440, 468, 2173, 1081, + 454, 529, 455, 1569, 1570, 95, 2265, 96, 1348, 1046, + 842, 1289, 147, 148, 1645, -991, 529, 1609, 844, 297, + 300, 300, 75, 2258, 846, 2112, 809, 46, 409, 848, + 1116, 1312, 530, 416, 2284, 47, 2285, 602, 1249, 2014, + 441, 1089, 607, 2286, 1313, 1648, 1648, 530, 1153, -345, + -345, 1192, 1192, 1192, 531, 2236, 1609, 2330, 10, 441, + 72, 1192, 10, 2293, 2294, 2252, 2253, 79, 1618, 442, + 249, 2134, 1619, 2136, 249, 532, 81, 1330, -991, 207, + 1946, 82, 1192, 437, 1192, 1950, 1192, 1913, 442, 1914, + 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1393, 1394, + 533, 1395, 437, 411, 297, 412, 534, -991, 115, 1753, + 443, 1579, 1756, 869, 325, 1653, 1654, 1761, 817, 208, + 2263, 1353, 2264, 1354, 438, 818, 1275, 103, 1552, 443, + 1841, 439, 1973, 535, 1974, 116, 1987, 2337, 1988, 1903, + 536, 1904, -991, 438, 2322, 117, 2024, 119, -991, 2323, + 439, 319, 320, 537, 1740, 2225, 1330, 2229, 2230, 125, + 326, 1046, 129, 538, 2295, 2296, 1081, 134, 2014, 209, + 130, 2334, 1193, 131, 132, 327, 133, 264, 538, 1599, + 539, 136, 293, 137, 155, 144, 1249, 2277, 540, 156, + 157, 171, 1430, 1612, 172, 173, 1434, 186, -215, 224, + 1081, 227, 228, 440, 1446, 1447, 229, 231, 1391, 1392, + 1393, 1394, 1628, 1395, 1799, 328, 234, 1800, 1330, 541, + 1396, 232, 440, 235, 1636, 1801, 1802, 1803, 503, 1721, + 237, 1722, 241, 242, 1723, 1391, 1392, 1393, 1394, 41, + 1395, 1289, 243, 2260, 1724, 2261, 271, 1751, 257, 1391, + 1392, 1393, 1394, 274, 1395, 280, 1192, 1192, 1192, 1192, + 1192, 1192, 1192, 275, 281, 290, 441, 1880, 297, 542, + -1427, -1427, -1427, -1427, 303, 305, 2257, 867, 1330, 2327, + -1540, 307, 2328, 313, 312, 441, 1855, 1265, 1266, 1267, + 1268, 314, 300, 349, 350, 442, 1906, 352, 1750, 504, + 359, -1540, 356, 1911, 361, 364, 365, 1331, 373, 390, + 1915, 391, 392, 400, 442, 401, 418, 1648, 1842, 1909, + 1081, 421, 1883, -1426, -1426, -1426, -1426, 41, 423, 1883, + 431, 2345, 329, 430, 448, 1918, 443, 300, 463, 1804, + 505, 466, -362, 473, 330, 471, 518, 506, 488, 297, + 1015, 1982, 1983, 1984, 1985, 443, 476, 1805, 522, 507, + 490, 300, 1921, 2352, 563, 571, 1017, 1935, 573, 576, + 1936, 1193, 1193, 1193, 1725, 1806, 580, 582, 603, 1726, + 604, 1193, 1780, 1781, 606, 608, 1932, 611, 1391, 1392, + 1393, 1394, 1727, 1395, 190, 684, 1702, 1331, 621, 686, + 694, 300, 1193, 701, 1193, 702, 1193, 806, 1437, 822, + 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 831, 508, + 319, 838, 849, 1807, 851, 888, 1947, 857, 889, -843, + 932, 613, 331, 332, 1391, 1392, 1393, 1394, 967, 1395, + 1728, 964, 1755, 970, 1986, 333, 983, 334, 1330, 1330, + 1989, 984, 1018, 986, 1081, 1081, 1391, 1392, 1393, 1394, + 992, 1395, 989, 437, 1758, 1391, 1392, 1393, 1394, 994, + 1395, 1808, 1863, 1763, 1000, 1003, 1331, 1006, 1009, 1037, + 1330, 1010, 509, 1051, 2304, 510, 511, 1059, 1729, 1067, + 1084, 1152, 2022, 1154, 1160, 1884, 2232, 1173, 1179, 1182, + 1893, 1893, 1195, 1198, 438, 877, 1021, 1209, 1216, 1022, + 1218, 439, 1730, 1391, 1392, 1393, 1394, 1233, 1395, 1220, + 1238, 1929, 1240, 1224, 1809, 1391, 1392, 1393, 1394, 1225, + 1395, 1226, 1049, 2131, 1810, 1227, 1731, 1228, 1331, 195, + 1243, 1732, 1023, 1919, 1229, 1920, 1230, 1231, 335, 1245, + 2028, 1733, 512, 196, 197, 1734, 2034, 2116, 1251, 1262, + 1257, 1259, 2118, 1269, 1281, 1285, 1300, 1303, 336, 1700, + 2076, 2123, 1301, -1429, 1310, 2124, 1193, 1193, 1193, 1193, + 1193, 1193, 1193, 440, 1314, 198, 1316, 1315, 1320, 1325, + 1327, 1122, 468, 165, 1349, 1352, 1811, 1356, 1331, 1358, + 1359, -1553, 1371, 1457, 1458, 1459, 1381, 1249, 1249, 1249, + 1024, 1460, 1398, 1735, 1402, 1419, 1453, 1192, 1432, 1439, + 1454, 1512, 1192, 1736, 199, 200, 1042, 201, 1535, 1550, + 1573, 1588, 1555, 1606, 1614, 1081, 202, 1592, 1621, 1622, + 1629, 1634, 1646, 1651, 1716, 1395, 441, 1717, 1740, 1461, + 1720, 1422, 1752, 1771, 1769, 1025, 1026, 1754, 1764, 1757, + 1762, 1792, 1526, 1774, 1815, 1817, 1819, 1831, 1834, 2170, + 300, 1835, 1823, 1857, 1860, 442, 1861, 1872, 1873, 203, + 204, 1027, 1874, 1887, 1888, 1898, 1896, 1907, 1692, 1978, + 205, 1930, 1959, 1979, 2002, 2169, 2003, 2005, 2009, 1028, + 2013, 1330, 2016, 2037, 2011, 2023, 2019, 1029, 1865, 1330, + 297, 2040, 2042, 2047, 2050, 2256, 443, 2055, 1081, 2061, + 2063, 2059, 2221, 2052, 2073, 2077, 1599, 2078, 2080, 2135, + 2120, 2137, 2139, 2235, 2153, 2237, 2157, 2155, 2160, 2174, + 2176, 2175, 2194, 2203, 2196, 2067, 2215, 1462, 1463, 2222, + 2223, 2227, 2233, 2013, 2089, 2234, 2266, 1330, 2268, 2270, + 2276, 2282, 2291, 2283, 2301, 206, 2318, 2333, 1331, 1331, + 2331, 300, 2335, 2244, 2350, 2319, 1464, 2114, 15, 433, + 28, 2114, 1465, 74, 193, 273, 260, 270, 294, 595, + 1363, 1616, 517, 226, 1644, 1650, 808, 1364, 1162, 2026, + 1331, 2114, 2114, 2075, 151, 1466, 296, 465, 67, 153, + 245, 309, 402, 1467, 819, 1007, 699, 1468, 990, 2096, + 1928, 2278, 1925, 1851, 1924, 2255, 624, 1176, 1015, 2239, + 1002, 2321, 982, 170, 1969, 585, 2029, 1264, 1939, 1273, + 1745, 1744, 1967, 1992, 1017, 1557, 1826, 1469, 1470, 1553, + 1999, 1572, 2114, 1471, 2018, 2114, 1584, 1836, 2159, 1309, + 2030, 1862, 1613, 1472, 1643, 2046, 1333, 2299, 2300, 1332, + 1473, 2303, 1894, 1134, 1347, 1474, 2201, 1895, 2305, 1933, + 207, 2039, 2013, 2206, 300, 2298, 1014, 1324, 2280, 867, + 2217, 1794, 1514, 1475, 414, 1878, 1196, 318, 1456, 996, + 1586, 1280, 825, 76, 300, 2320, 2244, 1199, 2324, 2309, + 969, 1773, 2119, 0, 1089, 2329, 1203, 0, 0, 0, + 208, 2198, 0, 2332, 0, 0, 0, 0, 0, 389, + 1018, 0, 0, 0, 0, 0, 0, 1193, 0, 0, + 2114, 437, 1193, 0, 0, 0, 2341, 910, 468, 0, + 1015, 0, -934, 0, 0, -934, 0, 2238, -934, -934, + -934, 0, 1015, 2339, 2340, 0, 1017, 2342, 0, 2343, + 209, 0, 0, 0, 0, 0, 2347, 1046, 1017, 0, + 0, 0, 438, 0, 1021, 0, 0, 1022, 0, 439, + 0, 0, 0, 0, 2114, 1046, 0, 0, 0, 0, + 0, 0, 0, 0, -934, 2349, 0, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 636, -934, 637, 638, 639, - 640, 641, 642, 0, -934, 2112, 0, -934, 0, 0, - 0, 0, 0, -934, -934, -934, 0, 0, 0, -934, - 0, -934, 0, -934, -934, -934, 1014, 0, 0, 867, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, + 1023, 1331, 0, 0, 0, 0, 0, 0, -934, 1331, + 0, 0, 0, 0, 0, 0, 1253, 0, 0, 1476, + 1477, 1478, 1479, 1480, -934, 1481, 0, 1482, 1483, 0, + 1484, 1485, 1018, 1289, 0, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 1018, 0, 468, 0, 2288, 0, + 0, 2290, 0, 0, 0, 437, 0, 1331, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -357, 0, 0, 0, - -357, 0, 0, 0, 1285, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286, - 0, 0, 2288, 0, 0, 0, 0, 0, -1540, -357, + 0, 2307, -934, -934, 1047, 1019, 1021, 0, 0, 1022, + 0, 0, 1020, 0, 0, 2114, 438, 0, 1021, 0, + 2114, 1022, 0, 439, 441, 0, 0, 0, 0, 0, + -934, -934, 0, 1025, 1026, 0, 0, -934, 0, 0, + 0, -934, 1023, 0, 1089, 0, 0, 0, 0, 0, + 0, 0, 0, 442, 1023, 2338, 0, 0, 0, 1027, + -934, 0, 0, 0, 0, 0, 0, 0, -934, 0, + 0, -934, -934, 0, 0, 0, 0, 1028, -934, 0, + 0, 0, -934, 0, -934, 1029, 0, -934, 297, -934, + 0, 0, 0, 0, 443, 440, -357, 626, 0, 0, + 1289, 0, -934, -934, 0, 0, 0, 0, -934, 0, + 1024, 0, 0, 0, 0, 0, 0, 627, -934, 0, + -934, 0, 1024, 0, 0, -934, 0, 0, 0, 0, + 628, 0, 0, 629, 630, 631, 632, 633, 634, 635, + 0, 0, 0, 0, 0, 0, 0, 0, -934, 0, + 0, 0, 0, 0, 0, 1025, 1026, 0, 441, 0, + 0, -934, 0, 0, 0, 0, 0, 1025, 1026, 0, + 636, 0, 637, 638, 639, 640, 641, 642, 0, 0, + 0, 1027, 0, 0, 0, 0, 0, 442, -934, 0, + 0, 0, 0, 1027, 0, 0, 0, 0, 0, 1028, + 0, 0, 0, 0, 0, 0, 0, 1029, 0, 0, + 297, 1028, 0, 0, 643, 0, 0, 0, 0, 1029, + 0, 0, 297, 0, -934, 0, 0, 0, 443, 0, + 0, -357, 0, -934, -934, -357, 1254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1015, 0, -357, 0, 0, 0, 0, -1540, - 0, 0, 2305, 0, 0, 0, 0, 0, 1017, 0, - 0, 0, 644, 1015, 0, 0, 2112, 0, 0, 0, - 0, 2112, 1138, 0, 0, 41, 0, 0, 645, 1017, - 0, 0, 0, 0, -1577, 0, 0, 0, -357, -357, - 0, 0, 0, 0, 0, 1089, -357, 646, 0, 0, - -357, 0, 0, 0, 0, 0, 2336, 0, 0, 0, - 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -627, 586, 0, -667, 0, -667, - 0, 0, 0, 0, -667, 0, 0, 648, 0, 0, - 0, 0, -667, 0, 1018, 0, 0, 0, 0, 0, - 0, 1285, 649, 0, 0, 437, 0, 0, 1102, 650, - 0, 651, 0, 0, 0, 1018, 0, 0, -357, 0, - 1342, 0, -357, 0, 652, -667, -667, 0, 0, 0, - 0, 0, 0, -667, 653, 1019, 0, 0, 0, 0, - 0, 654, 1020, -357, 0, -667, 438, 0, 1021, -667, - 0, 1022, 0, 439, 0, 0, 0, 0, 0, 0, - 0, -667, -357, 0, 0, -357, 0, 1047, 0, 1021, - 0, 0, 1022, 0, 0, 0, 0, 0, 655, 0, - 656, 657, 658, 0, 1023, -667, 0, 0, 0, 0, - 0, 0, -667, -667, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 659, 1023, 0, 0, 0, -627, - 0, 0, 0, -627, 0, 0, 0, 586, 0, -667, - 0, -667, -1577, -667, 0, 440, -667, 0, 0, 0, - 660, 661, 662, 0, -667, -667, 0, 0, 0, -667, - 0, 0, 0, 663, 0, 0, 664, 0, 0, 0, - 0, 0, 1024, -667, 0, -357, 0, -627, 0, 0, - -667, 0, 0, -667, -667, 0, -357, -667, -667, 0, - 0, -667, 0, 1024, 0, -667, 0, 0, -667, 0, - -667, 0, 0, -667, 0, 0, 0, -667, 441, 0, - 0, -667, 0, 0, 0, 0, 0, 1025, 1026, 0, - 0, 0, 0, -667, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 442, 1025, 1026, - -667, 0, 0, 1027, -667, 0, -667, -667, -1596, 0, - 0, 0, 0, -667, -667, -667, 0, 0, 0, 0, - 0, 1028, 700, 0, 1027, 0, 0, 0, 0, 1029, - 0, 0, 297, 0, -1042, 0, -667, 0, 443, 0, - 0, 0, 1028, 0, 0, -667, 0, -1042, 0, 0, - 1029, -667, 190, 297, 0, 0, 0, -667, 0, 0, - 0, -667, 0, 0, 0, -627, 0, 0, 0, 0, - 0, 0, -667, 0, 0, -667, 0, 0, 0, 0, - 0, -667, -667, 0, 0, -667, -667, 0, 0, 0, - 0, 0, 0, -667, -667, 0, 0, 0, 0, -667, - -667, -667, -667, 0, 0, -667, 0, 0, 0, -667, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -667, + 0, 0, 0, -934, 0, 0, 0, 0, 0, -934, + 0, 0, 0, -1540, -357, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -934, 0, -357, + 0, 0, 0, 0, -1540, -934, 0, 0, -934, 0, + 0, 0, 0, 0, -934, -934, -934, 644, 1015, 0, + -934, 0, -934, 0, -934, -934, -934, 0, 0, 0, + 41, 0, 0, 645, 1017, 0, 0, 0, 0, -1577, + 0, 0, 0, -357, -357, 0, 0, 0, 0, 0, + 0, -357, 646, 0, 0, -357, 0, 0, 0, 629, + 630, 631, 632, 633, 634, 0, 0, 0, 0, 647, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -627, + 586, 0, -667, 0, -667, 0, 0, 0, 0, -667, + 0, 0, 648, 0, 0, 0, 636, -667, 637, 638, + 639, 640, 641, 642, 0, 0, 0, 649, 0, 0, + 0, 0, 0, 1102, 650, 0, 651, 0, 0, 0, + 1018, 0, 0, -357, 0, 0, 0, -357, 0, 652, + -667, -667, 0, 0, 0, 0, 0, 0, -667, 653, + 643, 0, 0, 0, 0, 0, 654, 0, -357, 0, + -667, 0, 0, 0, -667, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -667, -357, 0, 0, + -357, 0, 1103, 0, 1021, 0, 0, 1022, 0, 0, + 0, 0, 0, 655, 0, 656, 657, 658, 0, 0, + -667, 0, 1015, 0, 0, 0, 0, -667, -667, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1017, 659, + 1023, 0, 0, 0, -627, 0, 0, 0, -627, 0, + 0, 0, 586, 644, -667, 0, -667, -1577, -667, 0, + 0, -667, 0, 0, 0, 660, 661, 662, 0, -667, + -667, 0, 0, 0, -667, 0, 0, 0, 663, 0, + 0, 664, 0, 0, 0, 0, 0, 0, -667, 0, + -357, 0, -627, 0, 0, -667, 0, 0, -667, -667, + 0, -357, -667, -667, 0, 647, -667, 0, 1024, 0, + -667, 0, 0, -667, 0, -667, 0, 1102, -667, 0, + 0, 0, -667, 0, 1018, 0, -667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -667, 0, - 0, 0, 0, 0, 0, 0, 0, -667, 0, -667, - -667, 0, -667, -667, 0, -667, -667, 0, -667, 0, - -667, 0, 0, 0, -1510, -667, 0, -1510, 0, 0, - -1510, -1510, -1510, 0, 0, 1270, -667, 0, 0, -1510, + 0, 0, 0, 649, 0, 0, 0, 0, 0, 0, + 0, 0, 651, 1025, 1026, -667, 0, 0, 0, -667, + 0, -667, -667, -1596, 0, 652, 0, 0, -667, -667, + -667, 0, 0, 0, 0, 0, 1047, 700, 1021, 1027, + 0, 1022, 0, 0, 0, 0, 0, 0, 0, -1042, + 0, -667, 0, 0, 0, 0, 0, 1028, 0, 0, + -667, 0, -1042, 0, 0, 1029, -667, 190, 297, 0, + 0, 0, -667, 0, 1023, 0, -667, 0, 0, 0, + -627, 656, 657, 658, 0, 0, 0, -667, 0, 0, + -667, 0, 0, 0, 0, 0, -667, -667, 0, 0, + -667, -667, 0, 0, 0, 0, 0, 0, -667, -667, + 0, 0, 0, 0, -667, -667, -667, -667, 0, 0, + -667, 0, 0, 0, -667, 0, 0, 0, 0, 0, + 0, 660, 661, 662, -667, 0, 0, 0, 0, 0, + 0, 0, 1024, -667, 0, 0, 0, 0, 0, 0, + 0, 0, -667, 0, -667, -667, 0, -667, -667, 0, + -667, -667, 0, -667, 0, -667, 0, 0, 0, -1510, + -667, 0, -1510, 0, 0, -1510, -1510, -1510, 0, 0, + 1274, -667, 0, 0, -1510, 0, -667, 1025, 1026, 0, + 0, -667, 0, -667, 0, 0, 0, -1596, 0, 0, + 0, 0, -667, 0, 0, 0, 0, 0, -667, 0, + 0, 587, 0, 1027, -667, 0, 0, 0, 0, 0, + 0, -1510, 0, -1042, -667, 0, 0, 0, 0, -667, + 0, 1028, 0, 0, 0, 0, -1042, 0, -667, 1029, + 0, 190, 297, 0, 0, -1510, 0, 0, 0, 0, 0, -667, 0, 0, 0, 0, -667, 0, -667, 0, - 0, 0, 0, 0, 0, 0, 0, -667, 0, 0, - 0, 0, 0, -667, 0, 0, 587, 0, 0, -667, - 0, 0, 0, 0, 0, 0, -1510, 0, 0, -667, - 0, 0, 0, 0, -667, 0, 0, 0, 0, 0, + 0, -1510, 0, 0, 0, 1014, -667, 0, 867, 0, + 0, 1491, 1492, 1493, 0, 0, -667, 0, 0, 0, + 0, 0, 0, 0, 0, -667, 0, 0, 0, 0, + 0, 0, 0, 0, -667, 0, -667, -667, 0, 0, + -667, 0, -667, 0, 0, 0, 0, -667, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1494, 0, -1510, + -1510, 0, 0, -667, 0, 0, 0, 0, -667, 0, 0, 0, 0, -667, 0, 0, 0, 0, 0, 0, - -1510, 0, 0, 0, 0, 0, -667, 0, 0, 0, - 0, -667, 0, -667, 0, 0, -1510, 0, 0, 0, - 1014, -667, 0, 867, 0, 0, 1489, 1490, 1491, 0, - 0, -667, 0, 0, 0, 0, 0, 0, 0, 0, - -667, 0, 0, 0, 0, 0, 0, 0, 0, -667, - 0, -667, -667, 0, 0, -667, 0, -667, 0, 0, - 0, 0, -667, 867, 0, 0, 0, 0, 0, 0, - 0, 0, 1492, 0, -1510, -1510, 0, 0, -667, 0, - 0, 0, 0, -667, 0, 0, 0, 0, -667, 0, - 0, 0, 0, 0, 0, 0, 1015, 0, 0, -667, - 0, 0, -1510, -1510, 0, 0, 0, 0, 587, -1510, - 0, -667, 1017, -1510, 0, 0, 0, 0, 0, 0, - 0, -667, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1510, 0, 0, 0, 1015, 0, 0, 0, - -1510, 0, 0, -1510, -1510, 0, 0, 0, 0, 0, - -1510, 0, 1017, 0, -1510, 0, -1510, 0, 0, -1510, + 0, 1015, 0, 0, -667, 0, 0, -1510, -1510, 0, + 0, 0, 0, 587, -1510, 0, -667, 1017, -1510, 0, + 0, 0, 0, 0, 0, 0, -667, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -1510, 0, 0, + 0, 0, 0, 0, 0, -1510, 0, 0, -1510, -1510, + 0, 0, 0, 0, 0, -1510, 0, 0, 0, -1510, + 0, -1510, 0, 0, -1510, 0, -1510, 0, 0, 0, + 0, 0, 0, 0, 0, 1462, 1463, 0, 0, -1510, + -1510, 0, 0, 0, 0, -1510, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -1510, 0, -1510, 0, 0, + 0, 0, -1510, 1018, 1464, 0, 0, 0, 0, 0, + 1465, 0, 0, 0, 437, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -1510, 0, 0, 0, 0, + 0, 0, 0, 1495, 0, 0, 0, 0, -1510, 0, + 0, 1467, 0, 0, 1019, 1468, 0, 0, 0, 0, + 0, 1020, 0, 0, 0, 438, 0, 1021, 0, 0, + 1022, 0, 439, 0, 0, -1510, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1496, 1497, 0, 0, 0, + 0, 1498, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1499, 0, 1023, 0, 0, 0, 0, 1500, 0, 0, -1510, 0, 0, 0, 0, 0, 0, 0, 0, - 1460, 1461, 0, 0, -1510, -1510, 0, 0, 0, 0, - -1510, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -1510, 0, -1510, 0, 0, 0, 0, -1510, 1018, 1462, - 0, 0, 0, 0, 0, 1463, 0, 0, 0, 437, + -1510, -1510, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1501, 0, 0, 0, 0, 0, -1510, 0, 0, + -1510, -1510, 0, 0, 440, 0, -1510, 703, 0, 704, + 0, 0, 0, 0, 705, 0, 0, 0, 0, 0, + 0, 0, 706, 0, -1510, 0, 0, 0, 0, 0, + 0, 1024, -1510, 0, 0, -1510, 0, 0, 0, 0, + 0, -1510, -1510, -1510, 0, 0, 0, -1510, 0, -1510, + 0, -1510, -1510, -1510, 0, 707, 708, 0, 0, 0, + 0, 0, 0, 709, 0, 0, 0, 441, 0, 0, + 0, 0, 0, 0, 0, 710, 1025, 1026, 0, 711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -1510, 0, 0, 0, 0, 0, 0, 0, 1493, 0, - 0, 0, 0, -1510, 0, 0, 1465, 0, 1018, 1019, - 1466, 0, 0, 0, 0, 0, 1020, 0, 0, 437, - 438, 0, 1021, 0, 0, 1022, 0, 439, 0, 0, - -1510, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1494, 1495, 0, 0, 0, 0, 1496, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1497, 0, 1023, 0, - 438, 0, 1021, 1498, 0, 1022, -1510, 439, 0, 0, - 0, 0, 0, 0, 0, -1510, -1510, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1499, 0, 0, 0, - 0, 0, -1510, 0, 0, -1510, -1510, 0, 1023, 440, - 0, -1510, 703, 0, 704, 0, 0, 0, 0, 705, - 0, 0, 0, 0, 0, 0, 0, 706, 0, -1510, - 0, 0, 0, 0, 0, 0, 1024, -1510, 0, 0, - -1510, 0, 0, 0, 0, 0, -1510, -1510, -1510, 440, - 0, 0, -1510, 0, -1510, 0, -1510, -1510, -1510, 0, - 707, 708, 0, 0, 0, 0, 0, 0, 709, 0, - 0, 0, 441, 0, 0, 0, 1024, 0, 0, 0, - 710, 1025, 1026, 0, 711, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, - 0, 442, 0, 0, 0, 0, 0, 1027, 0, 0, - 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, - 713, 1025, 1026, 0, 0, 1028, 0, 714, 715, 0, - 0, 0, 0, 1029, 0, 0, 297, 0, 0, 0, - 0, 442, 443, 1500, 1501, 0, 0, 1027, 1502, 0, - 1480, 0, 1503, 1482, 1483, 0, 0, 0, 716, 0, - 0, 0, 0, 0, 0, 1028, 0, 0, 0, 0, - 717, 0, 0, 1029, 718, 0, 297, 0, 0, 0, - 0, 0, 443, 0, 0, 0, 0, 0, 719, 0, - 0, 0, 0, 0, 0, 720, 0, 0, 721, 722, - 0, 0, 0, 0, 0, 0, 723, 0, 0, 0, - 0, 0, 0, 724, 0, 725, 0, 0, 726, 0, - 0, -799, 0, 0, -799, 0, 703, 0, 704, 0, - 0, 0, 0, 705, 0, 0, 0, 0, 0, 0, - 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 727, 0, 0, 0, 728, - 0, 729, 0, 0, 165, 0, 0, 0, 730, 0, - 0, 0, 0, 0, 707, 708, 0, 0, 0, 0, - 0, 0, 709, 0, 0, 0, 0, 0, 0, 0, - 0, 731, 0, 0, 710, 0, 0, -799, 711, 0, - 0, -1522, 0, 0, 0, 0, 732, 0, 0, 0, - 712, 0, 0, -799, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, - 0, 0, 0, 0, 713, 0, 734, 0, 0, 0, - 0, 714, 715, 0, 0, 0, 0, 0, 0, 735, - 0, 0, 0, 0, 736, 0, 737, 0, 0, 0, - 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, - 0, 0, 716, 0, 739, 0, 0, 0, 0, 0, - 0, 0, 0, 740, 717, 0, 0, 0, 718, 0, - 0, 0, 741, 0, 742, 743, 0, 0, 744, -799, - 745, 0, 719, 0, 0, 746, 0, 0, 0, 720, - -799, 0, 721, 722, 0, 0, 0, 0, 0, 0, - 723, 747, 0, 0, 0, 0, 748, 724, 0, 725, - 0, 749, 726, 0, 0, 0, 0, 0, 0, 0, - -799, 0, 750, 1014, 0, 0, 867, -799, 0, 0, - 0, -799, 0, -799, 751, 0, -799, 0, -799, 0, - 0, 0, 0, 0, 752, 0, 0, 1207, 0, 727, - 0, 0, 0, 728, 0, 729, 0, 1014, 0, 0, - 867, 0, 730, 0, 0, 0, 0, 0, 0, -799, - 0, 0, 0, 0, -799, 0, 0, 0, 0, 1014, - 0, 0, 867, -1518, 0, 731, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, - 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -799, 0, 0, 0, 0, 1017, 0, 0, 0, 1014, - -1522, 733, 867, 0, 0, 0, 0, 0, 0, 0, - 734, 0, 0, 1015, 0, 0, 0, -799, 0, 0, - 0, 1014, 0, 735, 867, 1016, 0, 0, 736, 1017, - 737, 0, 0, 0, 0, 1015, 0, 0, 738, 0, - 0, 0, 0, 0, 0, 0, 0, -799, 739, 0, - 0, 1017, 0, -799, 0, 0, 0, 740, 0, 0, - 0, 0, -799, -799, 0, 1138, 741, 0, 742, 743, - 0, 0, 744, 0, 745, 1015, 0, 0, 0, 746, - 0, 1018, -799, 0, 0, 0, 0, 1096, -799, 0, - 0, 1017, 437, -799, 0, 747, 0, 1015, 0, 0, - 748, 0, 0, 0, 0, 749, -799, 0, 0, 1142, - -1522, 0, 0, 1017, -799, 1018, 750, -799, 0, 0, - 0, 0, 1019, -799, 0, 0, 437, 0, 751, 1020, - -1518, 0, 0, 438, 0, 1021, 0, 1018, 1022, 0, - 439, 0, 0, 0, 0, 0, 0, 0, 437, 0, - 0, 0, 0, 0, 0, 0, 1019, 0, 0, 0, - 0, 0, 0, 1020, 0, 0, 0, 438, 0, 1021, - 0, 1023, 1022, 0, 439, 0, 0, 1018, 1019, 0, - 0, 0, 0, 0, 0, 1020, 0, 0, 437, 438, - 0, 1021, 0, 0, 1022, 0, 439, 0, -1518, 1018, - 0, 0, 0, 0, 0, 1023, 0, 0, 0, 0, - 437, 0, 440, 0, 0, 0, 0, 0, 1019, 0, - 0, 1014, 0, 0, 867, 1020, 0, 1023, 0, 438, - 0, 1021, 0, 0, 1022, 0, 439, 0, 0, 1024, - 1019, 0, 0, 0, 0, 0, 440, 1020, 0, 0, - 0, 438, 0, 1021, 0, 0, 1022, 0, 439, 0, - 0, 0, 0, 0, 0, 0, 0, 1023, 440, 0, - 0, 1014, 0, 1024, 867, 441, 0, 0, 0, 0, - 0, 0, 0, 1014, 1025, 1026, 867, 0, 0, 1023, - 0, 0, 0, 0, 0, 1024, 0, 1015, 0, 0, - 0, 0, 0, 0, 442, 0, 0, 0, 440, 441, - 1027, 0, 0, 1017, 0, 0, 0, 0, 1025, 1026, - 0, 0, 0, 0, 0, 0, 0, 0, 1028, 0, - 440, 441, 0, 0, 0, 1024, 1029, 0, 442, 297, - 1025, 1026, 0, 0, 1027, 443, 0, 1015, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1024, 0, 1015, - 442, 0, 1028, 1017, 0, 0, 1027, 0, 0, 0, - 1029, 441, 0, 297, 0, 1017, 0, 0, 0, 443, - 1025, 1026, 0, 0, 1028, 0, 0, 0, 0, 0, - 0, 0, 1029, 441, 1014, 297, 0, 867, 0, 1018, - 442, 443, 1025, 1026, 0, 0, 1027, 0, 0, 0, - 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 0, 1028, 0, 0, 0, 1027, 0, - 0, 0, 1029, 0, 0, 297, 0, 0, 0, 0, - 1019, 443, 0, 0, 0, 1347, 1028, 1020, 0, 1018, - 0, 438, 0, 1021, 1029, 0, 1022, 297, 439, 0, - 437, 1018, 0, 443, 0, 0, 0, 0, 0, 0, - 1015, 0, 437, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1017, 0, 0, 1023, - 1019, 0, 0, 0, 0, 0, 0, 1020, 0, 0, - 0, 438, 1019, 1021, 0, 0, 1022, 0, 439, 1020, - 0, 0, 0, 438, 0, 1021, 0, 0, 1022, 0, - 439, 0, 1014, 0, 0, 867, 0, 0, 0, 0, - 440, 0, 0, 0, 0, 0, 0, 0, 0, 1023, + 0, 712, 0, 0, 0, 0, 442, 0, 0, 0, + 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 713, 0, 0, 0, 0, + 1028, 0, 714, 715, 0, 0, 0, 0, 1029, 0, + 0, 297, 0, 0, 0, 0, 0, 443, 1502, 1503, + 0, 0, 0, 1504, 0, 1482, 0, 1505, 1484, 1485, + 0, 0, 0, 716, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 717, 0, 0, 0, 718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1023, 0, 0, 0, 0, 0, 1024, 0, 0, + 0, 0, 0, 719, 0, 0, 0, 0, 0, 0, + 720, 0, 0, 721, 722, 0, 0, 0, 0, 0, + 0, 723, 0, 0, 0, 0, 0, 0, 724, 0, + 725, 0, 0, 726, 0, 0, -799, 0, 0, -799, + 0, 703, 0, 704, 0, 0, 0, 0, 705, 0, + 0, 0, 0, 0, 0, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 437, 0, 0, 0, 0, 0, 0, - 0, 1014, 440, 441, 867, 0, 0, 0, 1015, 0, - 0, 0, 1025, 1026, 0, 0, 0, 1024, 0, 0, - 0, 0, 0, 1019, 1017, 0, 0, 0, 1231, 1024, - 1020, 0, 442, 0, 438, 0, 1021, 0, 1027, 1022, - 0, 439, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 441, 0, 0, 1028, 0, 0, 1624, - 0, 0, 1025, 1026, 1029, 441, 0, 297, 0, 0, - 0, 0, 1023, 443, 1025, 1026, 0, 1015, 0, 0, - 0, 0, 442, 0, 0, 0, 0, 0, 1027, 0, - 0, 0, 0, 1017, 442, 0, 0, 0, 0, 0, - 1027, 0, 0, 0, 0, 0, 1028, 0, 0, 0, - 1018, 0, 0, 440, 1029, 0, 0, 297, 1028, 0, - 0, 437, 0, 443, 0, 0, 1029, 0, 0, 297, - 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, - 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1019, 0, 0, 0, 0, 0, 0, 1020, 0, - 0, 0, 438, 0, 1021, 0, 0, 1022, 0, 439, - 0, 1762, 0, 0, 0, 0, 441, 0, 0, 1018, + 727, 0, 0, 0, 728, 0, 729, 0, 0, 165, + 0, 0, 0, 730, 0, 0, 0, 0, 0, 707, + 708, 0, 0, 0, 0, 0, 0, 709, 0, 0, + 0, 0, 0, 0, 0, 0, 731, 0, 0, 710, + 0, 0, -799, 711, 0, 0, -1522, 0, 0, 0, + 0, 732, 0, 0, 0, 712, 0, 0, -799, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 733, 0, 0, 0, 0, 0, 0, 713, + 0, 734, 0, 0, 0, 0, 714, 715, 0, 0, + 0, 0, 0, 0, 735, 0, 0, 0, 0, 736, + 0, 737, 0, 0, 0, 0, 0, 0, 0, 738, + 0, 0, 0, 0, 0, 0, 0, 716, 0, 739, + 0, 0, 0, 0, 0, 0, 0, 0, 740, 717, + 0, 0, 0, 718, 0, 0, 0, 741, 0, 742, + 743, 0, 0, 744, -799, 745, 0, 719, 0, 0, + 746, 0, 0, 0, 720, -799, 0, 721, 722, 0, + 0, 0, 0, 0, 0, 723, 747, 0, 0, 0, + 0, 748, 724, 0, 725, 0, 749, 726, 0, 0, + 0, 0, 0, 0, 0, -799, 0, 750, 1014, 0, + 0, 867, -799, 0, 0, 0, -799, 0, -799, 751, + 0, -799, 0, -799, 0, 0, 0, 0, 0, 752, + 0, 0, 1211, 0, 727, 0, 0, 0, 728, 0, + 729, 0, 0, 0, 0, 0, 0, 730, 0, 0, + 0, 0, 0, 0, -799, 0, 0, 0, 1014, -799, + 0, 867, 0, 0, 0, 0, 0, 0, -1518, 0, + 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1015, 732, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -799, 0, 0, 0, 0, + 1017, 0, 0, 0, 0, -1522, 733, 0, 0, 0, + 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, + 0, 0, -799, 0, 0, 0, 0, 0, 735, 0, + 0, 0, 0, 736, 1015, 737, 0, 0, 1014, 0, + 0, 867, 0, 738, 0, 0, 0, 0, 0, 0, + 1017, 0, -799, 739, 0, 0, 0, 0, -799, 0, + 0, 0, 740, 0, 0, 0, 0, -799, -799, 0, + 0, 741, 0, 742, 743, 0, 0, 744, 0, 745, + 0, 0, 0, 0, 746, 0, 1018, -799, 0, 0, + 0, 0, 0, -799, 0, 0, 0, 437, -799, 0, + 747, 1617, 0, 0, 0, 748, 0, 0, 0, 0, + 749, -799, 0, 0, 1015, -1522, 0, 0, 0, -799, + 0, 750, -799, 0, 0, 0, 0, 1019, -799, 0, + 1017, 0, 0, 751, 1020, -1518, 1018, 0, 438, 0, + 1021, 0, 0, 1022, 1138, 439, 0, 437, 0, 1014, + 0, 0, 867, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1023, 1019, 0, 0, + 0, 0, 0, 0, 1020, 0, 0, 0, 438, 0, + 1021, 0, 0, 1022, 0, 439, 0, 0, 0, 0, + 0, 0, 0, -1518, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1018, 440, 0, 0, + 0, 0, 0, 0, 0, 1015, 1023, 437, 0, 1014, + 0, 0, 867, 0, 0, 0, 0, 1016, 0, 0, + 0, 1017, 1346, 0, 1024, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1019, 0, 0, + 0, 0, 0, 0, 1020, 0, 0, 440, 438, 0, + 1021, 0, 0, 1022, 0, 439, 0, 0, 0, 1014, + 441, 0, 867, 0, 0, 0, 0, 0, 0, 1025, + 1026, 0, 0, 0, 1024, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1015, 1023, 0, 0, 442, + 0, 0, 0, 0, 0, 1027, 0, 1096, 0, 0, + 0, 1017, 0, 0, 0, 0, 0, 1018, 0, 0, + 441, 0, 0, 1028, 0, 0, 0, 0, 437, 1025, + 1026, 1029, 0, 0, 297, 0, 0, 440, 0, 0, + 443, 0, 0, 0, 0, 1015, 1618, 0, 0, 442, + 1619, 0, 0, 0, 0, 1027, 0, 0, 1019, 0, + 0, 1017, 0, 0, 1024, 1020, 0, 0, 0, 438, + 0, 1021, 0, 1028, 1022, 1138, 439, 0, 0, 0, + 0, 1029, 0, 0, 297, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 0, 1018, 1014, 0, + 441, 867, 0, 0, 0, 0, 0, 1023, 437, 1025, + 1026, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, + 0, 0, 0, 0, 0, 1027, 0, 0, 1019, 0, + 0, 0, 0, 0, 0, 1020, 0, 1018, 440, 438, + 0, 1021, 0, 1028, 1022, 0, 439, 0, 437, 0, + 1014, 1029, 0, 867, 297, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 1015, 1024, 0, 0, 0, 0, + 0, 0, 1014, 0, 0, 867, 1142, 1023, 1019, 0, + 1017, 0, 0, 0, 1014, 1020, 0, 867, 0, 438, + 0, 1021, 0, 0, 1022, 0, 439, 0, 0, 0, + 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, + 1025, 1026, 0, 0, 0, 0, 0, 0, 440, 0, + 0, 0, 0, 0, 0, 0, 1015, 1023, 0, 0, + 442, 0, 0, 0, 0, 0, 1027, 0, 0, 0, + 0, 0, 1017, 0, 0, 1024, 0, 0, 1015, 0, + 0, 0, 0, 0, 1028, 0, 0, 0, 0, 0, + 1015, 0, 1029, 0, 1017, 297, 1018, 0, 440, 0, + 0, 443, 0, 0, 0, 0, 1017, 437, 0, 0, + 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, + 1025, 1026, 0, 0, 0, 1024, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1019, 0, 0, + 442, 0, 0, 0, 1020, 0, 1027, 0, 438, 0, + 1021, 0, 0, 1022, 0, 439, 0, 0, 1018, 0, + 0, 441, 0, 0, 1028, 0, 0, 0, 0, 437, + 1025, 1026, 1029, 0, 0, 297, 1351, 0, 0, 0, + 1018, 443, 0, 0, 0, 0, 1023, 0, 0, 0, + 442, 437, 1018, 0, 0, 0, 1027, 0, 0, 1019, + 0, 0, 0, 437, 0, 0, 1020, 0, 0, 0, + 438, 0, 1021, 0, 1028, 1022, 0, 439, 0, 0, + 0, 1019, 1029, 0, 0, 297, 0, 440, 1020, 0, + 0, 443, 438, 1019, 1021, 0, 0, 1022, 0, 439, + 1020, 0, 1014, 0, 438, 867, 1021, 0, 1023, 1022, + 0, 439, 0, 0, 1024, 0, 1014, 0, 0, 867, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1023, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1023, 0, 0, 0, 0, 0, 0, 440, + 441, 0, 0, 0, 0, 0, 0, 0, 0, 1025, + 1026, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 0, 0, 1024, 0, 1015, 442, + 0, 0, 0, 440, 0, 1027, 0, 0, 0, 0, + 0, 0, 1015, 0, 1017, 0, 1014, 0, 1024, 867, + 0, 0, 0, 1028, 0, 0, 0, 0, 1017, 0, + 1024, 1029, 441, 0, 297, 0, 0, 0, 0, 0, + 443, 1025, 1026, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 441, 0, 0, 1235, 0, 0, + 1626, 442, 0, 1025, 1026, 0, 441, 1027, 0, 0, 0, 0, 0, 0, 0, 1025, 1026, 0, 0, 0, - 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1023, 0, 0, 0, 0, 442, 0, 0, 0, 0, - 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, - 1019, 0, 0, 0, 0, 0, 0, 1020, 0, 1028, - 0, 1060, 0, 1021, 0, 0, 1022, 1029, 439, 0, - 297, 440, 1655, 0, 1656, 0, 443, 1657, 629, 630, - 631, 632, 633, 634, 635, 1658, 1659, 1660, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1024, 1023, - 0, 0, 0, 0, 0, 0, 0, 1661, 0, 0, - 0, 0, 0, 0, 0, 636, 0, 637, 638, 639, - 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, - 440, 0, 0, 1025, 1026, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, - 0, 0, 0, 442, 0, 0, 0, 1024, 0, 1027, + 0, 0, 0, 442, 0, 1028, 0, 0, 0, 1027, + 0, 0, 1015, 1029, 0, 442, 297, 0, 0, 0, + 1018, 1027, 443, 0, 0, 0, 0, 1028, 1017, 0, + 0, 437, 0, 0, 1018, 1029, 0, 0, 297, 1028, + 0, 0, 0, 0, 443, 437, 0, 1029, 0, 0, + 297, 0, 0, 0, 0, 0, 443, 0, 0, 0, + 0, 1019, 0, 0, 0, 0, 0, 0, 1020, 0, + 0, 0, 438, 0, 1021, 1019, 0, 1022, 0, 439, + 0, 0, 1020, 0, 0, 0, 438, 0, 1021, 0, + 0, 1022, 0, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1028, 0, 0, - 0, 0, 0, 0, 0, 1029, 0, 0, 297, 1662, - 0, 0, 0, 441, 443, 0, 0, 0, 0, 0, - 0, 0, 1025, 1026, 0, 0, 0, 1663, 0, 0, - 0, 1664, 1665, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 0, 0, 1666, 0, 0, 1027, 0, - 0, 0, 644, 0, 0, 0, 0, 0, 0, 629, - 630, 631, 632, 633, 634, 635, 1028, 0, 645, 0, - 0, 0, 0, 0, 1029, 0, 0, 297, 0, 0, - 0, 0, 0, 443, 1667, 0, 0, 0, 2079, 2080, - 0, 0, 0, 1668, 0, 0, 636, 0, 637, 638, - 639, 640, 641, 642, 647, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, - 631, 632, 633, 634, 0, 0, 0, 1669, 0, 0, + 1023, 0, 0, 0, 1018, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1023, 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 643, 1670, 649, 0, 0, 0, 0, 0, 0, 650, - 0, 651, 0, 0, 0, 636, 0, 637, 638, 639, - 640, 641, 642, 0, 652, 1671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1015, 0, 0, 1672, - 0, 0, 0, 0, 1673, 0, 0, 0, 0, 643, - 0, 0, 1017, 0, 0, 0, 0, 0, 1674, 0, - 0, 0, 0, 0, 2081, 0, 0, 0, 655, 0, - 656, 657, 658, 644, 0, 0, 1015, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, + 0, 440, 0, 0, 0, 1019, 0, 0, 0, 0, + 0, 0, 1020, 0, 0, 440, 1060, 0, 1021, 0, + 0, 1022, 0, 439, 0, 0, 0, 0, 1024, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1024, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1023, 0, 0, 0, 0, 1764, + 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, + 0, 0, 0, 1025, 1026, 0, 0, 0, 441, 0, + 0, 0, 0, 0, 0, 0, 0, 1025, 1026, 0, + 0, 0, 0, 442, 0, 440, 0, 0, 0, 1027, + 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, + 0, 0, 0, 1027, 0, 0, 0, 1028, 0, 0, + 0, 0, 1024, 0, 0, 1029, 0, 0, 297, 0, + 0, 1028, 0, 0, 443, 0, 0, 0, 0, 1029, + 0, 0, 297, 0, 0, 0, 0, 0, 443, 0, + 0, 0, 0, 0, 0, 0, 1015, 0, 441, 0, + 0, 0, 0, 0, 0, 0, 0, 1025, 1026, 0, 0, 0, 1017, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1675, 2082, 2083, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1676, 0, 0, 0, - 660, 661, 662, 1015, 0, 647, 0, 0, 0, 0, - 2084, 0, 644, 663, 0, 1677, 664, 0, 1018, 1017, - 0, 0, 0, 0, 0, 0, 0, 0, 648, 437, - 0, 0, 0, 0, 0, 0, 1678, 1015, 0, 0, - 0, 0, 0, 649, 0, 0, 0, 0, 0, 0, - 650, 0, 651, 1017, 0, 2085, 0, 0, 1018, 1180, - 0, 0, 0, 0, 647, 652, 1020, 0, 0, 437, - 438, 0, 1021, 0, 0, 1022, 0, 439, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 442, 0, 1657, + 0, 1658, 0, 1027, 1659, 629, 630, 631, 632, 633, + 634, 635, 1660, 1661, 1662, 0, 0, 0, 0, 0, + 0, 1028, 629, 630, 631, 632, 633, 634, 635, 1029, + 0, 0, 297, 0, 1663, 0, 0, 0, 443, 0, + 0, 0, 636, 0, 637, 638, 639, 640, 641, 642, + 0, 2081, 2082, 0, 0, 0, 0, 0, 0, 636, + 0, 637, 638, 639, 640, 641, 642, 0, 1018, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, + 0, 0, 0, 0, 0, 0, 643, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 643, 0, 0, 0, 0, 0, 1184, + 0, 0, 0, 0, 0, 0, 1020, 0, 0, 0, + 438, 0, 1021, 0, 0, 1022, 1664, 439, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1665, 0, 0, 0, 1666, 1667, + 0, 1015, 0, 0, 0, 0, 0, 0, 1023, 0, + 0, 0, 1668, 0, 0, 0, 0, 1017, 0, 644, + 0, 0, 0, 0, 0, 0, 0, 2083, 0, 0, + 0, 0, 0, 0, 0, 645, 644, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, + 0, 1669, 645, 0, 0, 0, 0, 0, 0, 0, + 1670, 0, 0, 0, 0, 0, 0, 0, 2084, 2085, + 0, 647, 0, 0, 0, 0, 1024, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 647, 0, + 0, 0, 0, 2086, 1671, 0, 0, 0, 0, 0, + 0, 0, 0, 1018, 0, 0, 0, 0, 1672, 649, + 0, 648, 441, 0, 437, 0, 650, 0, 651, 0, + 0, 1025, 1026, 0, 0, 0, 649, 0, 0, 0, + 0, 652, 1673, 650, 0, 651, 0, 0, 2087, 0, + 0, 442, 0, 0, 1184, 0, 0, 1027, 652, 0, + 0, 1020, 0, 0, 0, 438, 1674, 1021, 0, 0, + 1022, 1675, 439, 0, 0, 1028, 0, 0, 0, 0, + 0, 0, 0, 1029, 1015, 1676, 297, 0, 0, 0, + 0, 0, 443, 1185, 1186, 655, 0, 656, 657, 658, + 1017, 1709, 1187, 1023, 0, 0, 0, 0, 0, 0, + 0, 0, 655, 0, 656, 657, 658, 0, 0, 0, + 0, 2088, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1677, 0, 0, 0, 2089, 0, 0, 0, 0, + 0, 0, 0, 1678, 440, 0, 0, 660, 661, 662, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2090, + 663, 0, 1679, 664, 660, 661, 662, 0, 0, 0, + 0, 1024, 0, 0, 0, 0, 0, 663, 0, 0, + 664, 2091, 0, 1680, 0, 0, 1018, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 437, 0, 0, + 2092, 0, 0, 0, 0, 0, 0, 441, 0, 0, + 0, 0, 0, 0, 0, 0, 1025, 1026, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1184, 0, 0, + 0, 0, 0, 0, 1020, 0, 442, 0, 438, 0, + 1021, 0, 1027, 1022, 0, 439, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1028, 0, 0, 0, 0, 0, 0, 0, 1029, 0, + 0, 297, 0, 0, 0, 0, 1023, 443, 1185, 1186, + 0, 0, 0, 0, 0, 0, 1945, 1187, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1180, - 0, 0, 649, 0, 0, 1018, 1020, 0, 1023, 0, - 438, 651, 1021, 0, 0, 1022, 437, 439, 0, 655, - 0, 656, 657, 658, 652, 0, 0, 0, 2086, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, - 0, 0, 2087, 0, 0, 0, 1180, 0, 1023, 440, - 437, 0, 0, 1020, 0, 0, 0, 438, 0, 1021, - 0, 0, 1022, 0, 439, 0, 2088, 0, 0, 0, - 0, 660, 661, 662, 0, 0, 1024, 0, 0, 0, - 656, 657, 658, 0, 663, 0, 0, 664, 2089, 440, - 0, 438, 0, 1021, 0, 1023, 1022, 0, 439, 0, - 0, 0, 0, 0, 0, 0, 0, 2090, 0, 0, - 0, 0, 441, 0, 0, 0, 1024, 0, 0, 0, - 0, 1025, 1026, 0, 0, 0, 0, 0, 0, 1023, - 660, 661, 662, 0, 0, 0, 440, 0, 0, 0, - 0, 442, 0, 0, 0, 0, 0, 1027, 0, 0, - 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, - 0, 1025, 1026, 1024, 0, 1028, 0, 0, 0, 0, - 440, 0, 0, 1029, 0, 0, 297, 0, 0, 0, - 0, 442, 443, 1181, 1182, 0, 0, 1027, 0, 0, - 0, 1707, 1183, 0, 0, 0, 0, 1024, 0, 441, - 0, 0, 0, 0, 0, 1028, 0, 0, 1025, 1026, - 0, 0, 0, 1029, 0, 0, 297, 0, 0, 0, - 0, 0, 443, 1181, 1182, 0, 0, 0, 442, 0, - 0, 1943, 1183, 441, 1027, 0, 0, 0, 0, 0, - 0, 0, 1025, 1026, 0, 0, 0, 0, 0, 0, - 0, 0, 1028, 0, 0, 0, 0, 0, 0, 0, - 1029, 0, 442, 297, 0, 0, 0, 0, 1027, 443, - 1181, 1182, 0, 0, 0, 0, 0, 0, 0, 1183, - 0, 0, 0, 0, 0, 0, 1028, 0, 0, 0, - 0, 0, 0, 0, 1029, 0, 0, 297, 0, 0, - 0, 0, 0, 443 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 441, 0, 0, 0, 0, 0, 0, 0, 0, 1025, + 1026, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, + 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1028, 0, 0, 0, 0, 0, 0, + 0, 1029, 0, 0, 297, 0, 0, 0, 0, 0, + 443, 1185, 1186, 0, 0, 0, 0, 0, 0, 0, + 1187 }; static const yytype_int16 yycheck[] = { - 84, 176, 412, 571, 231, 132, 230, 234, 460, 721, - 934, 1059, 685, 898, 687, 323, 1308, 535, 536, 1138, - 893, 196, 197, 653, 1131, 1238, 201, 202, 203, 204, - 205, 904, 207, 228, 209, 230, 231, 750, 1748, 234, - 1378, 1238, 1238, 895, 1238, 892, 22, 1238, 868, 869, - 13, 1052, 1420, 1421, 901, 902, 283, 369, 1152, 912, - 287, 692, 289, 1121, 894, 487, 193, 6, 1378, 916, - 917, 298, 925, 248, 301, 250, 160, 9, 625, 23, - 258, 1271, 257, 930, 931, 603, 28, 9, 283, 49, - 265, 1079, 287, 1378, 289, 1029, 1378, 17, 6, 1087, - 49, 1208, 1378, 298, 279, 280, 301, 282, 1378, 72, - 820, 48, 96, 288, 9, 49, 6, 6, 30, 96, - 70, 1522, 86, 114, 1312, 88, 17, 85, 1411, 122, - 56, 54, 444, 360, 70, 1418, 48, 86, 56, 1540, - 49, 21, 149, 370, 63, 1133, 1262, 1263, 1264, 1207, - 377, 9, 327, 22, 170, 330, 331, 73, 333, 171, - 1897, 56, 66, 182, 121, 360, 390, 1168, 392, 66, - 348, 70, 1882, 115, 349, 370, 70, 355, 123, 625, - 122, 49, 377, 171, 214, 1032, 70, 1588, 415, 862, - 0, 366, 40, 388, 1014, 390, 61, 392, 248, 1019, - 1294, 874, 9, 56, 207, 37, 518, 245, 223, 251, - 23, 32, 279, 9, 70, 1062, 49, 118, 413, 126, - 415, 300, 306, 88, 89, 168, 107, 1628, 1286, 183, - 202, 409, 171, 1352, 121, 462, 411, 464, 416, 463, - 6, 914, 150, 1843, 419, 236, 163, 1171, 322, 1096, - 236, 429, 1404, 0, 1231, 1115, 214, 325, 1078, 1411, - 188, 233, 174, 236, 248, 372, 1418, 462, 463, 464, - 214, 693, 310, 368, 368, 453, 1129, 319, 173, 321, - 118, 113, 211, 402, 479, 1379, 214, 123, 466, 836, - 1348, 1268, 1139, 1661, 1004, 1005, 9, 1144, 473, 1667, - 118, 423, 236, 310, 236, 455, 1400, 236, 223, 393, - 986, 418, 396, 380, 436, 1316, 70, 455, 493, 494, - 358, 305, 1299, 418, 418, 122, 312, 150, 223, 92, - 1003, 167, 406, 236, 561, 236, 233, 50, 280, 458, - 248, 519, 1330, 164, 227, 228, 1231, 319, 523, 214, - 236, 236, 1410, 403, 326, 121, 263, 311, 533, 537, - 1180, 325, 441, 1553, 1765, 325, 561, 435, 998, 999, - 1347, 316, 289, 183, 70, 1006, 325, 210, 1251, 986, - 1202, 341, 251, 1268, 1231, 560, 218, 63, 583, 584, - 836, 1238, 364, 568, 1513, 573, 411, 301, 236, 195, - 578, 214, 260, 1276, 301, 214, 322, 975, 256, 218, - 2010, 354, 539, 2013, 1299, 1531, 325, 455, 236, 364, - 1267, 1268, 1529, 244, 360, 455, 442, 602, 293, 236, - 442, 434, 607, 1716, 609, 442, 455, 612, 2175, 614, - 236, 616, 617, 1296, 363, 1121, 621, 243, 441, 442, - 1280, 442, 1299, 1641, 442, 1315, 236, 325, 442, 654, - 318, 360, 1347, 1557, 1452, 442, 360, 424, 321, 442, - 648, 435, 409, 341, 1451, 435, 360, 236, 436, 455, - 1310, 350, 195, 433, 168, 403, 435, 1334, 663, 664, - 406, 1338, 1339, 1203, 1341, 455, 411, 409, 442, 441, - 1347, 311, 441, 442, 360, 1181, 1182, 1183, 442, 400, - 442, 434, 225, 403, 448, 1191, 411, 443, 438, 315, - 442, 457, 1580, 236, 404, 833, 435, 1357, 408, 441, - 243, 1207, 364, 9, 442, 498, 1212, 424, 1214, 442, - 1216, 1942, 1218, 1591, 1220, 1221, 1222, 1223, 1224, 1225, - 1226, 1227, 442, 442, 1612, 867, 442, 442, 457, 895, - 441, 442, 2162, 457, 1716, 692, 1451, 435, 331, 245, - 1908, 1690, 455, 457, 1181, 1182, 1183, 1399, 914, 376, - 1872, 1211, 378, 919, 1191, 1007, 117, 455, 1218, 816, - 455, 251, 1993, 820, 1995, 2305, 823, 824, 1908, 1587, - 187, 457, 315, 830, 442, 1212, 360, 1214, 269, 1216, - 1286, 407, 187, 1220, 1221, 1222, 1223, 1224, 1225, 1226, - 1227, 816, 2023, 1908, 442, 820, 1908, 1174, 823, 824, - 1820, 394, 1908, 442, 310, 830, 811, 403, 1908, 139, - 156, 30, 198, 120, 441, 442, 442, 187, 1278, 70, - 986, 236, 448, 2054, 2055, 1774, 180, 832, 424, 456, - 139, 1554, 442, 248, 360, 378, 187, 1560, 448, 1885, - 354, 240, 1348, 422, 187, 28, 442, 66, 27, 456, - 200, 1511, 358, 442, 240, 1397, 236, 363, 1000, 1320, - 350, 260, 31, 1324, 407, 449, 450, 451, 452, 894, - 454, 288, 901, 457, 260, 1381, 102, 187, 293, 887, - 11, 2079, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 195, - 915, 405, 986, 240, 919, 455, 921, 954, 923, 924, - 240, 926, 931, 1586, 1410, 448, 260, 326, 1739, 1740, - 1741, 269, 331, 260, 971, 187, 941, 524, 1460, 175, - 2059, 1381, 2061, 449, 450, 451, 452, 277, 454, 954, - 236, 457, 115, 198, 199, 426, 442, 243, 284, 1105, - 71, 110, 1619, 348, 305, 1833, 971, 1004, 1005, 1767, - 441, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 240, 247, - 236, 180, 919, 245, 989, 455, 1426, 972, 2014, 349, - 12, 1895, 247, 15, 16, 240, 984, 1520, 348, 1004, - 1005, 311, 1664, 1747, 563, 899, 1935, 1936, 1752, 1753, - 341, 198, 1756, 1757, 1758, 260, 1760, 1761, 245, 206, - 166, 1889, 311, 245, 2047, 348, 920, 347, 922, 315, - 1817, 299, 1819, 927, 233, 1181, 1182, 1183, 225, 1561, - 2047, 2047, 936, 2047, 299, 1191, 2047, 442, 1570, 311, - 2261, 2262, 1850, 448, 1980, 1981, 1982, 1983, 348, 1988, - 1989, 207, 441, 9, 28, 1852, 1212, 455, 1214, 215, - 1216, 437, 1218, 1, 1220, 1221, 1222, 1223, 1224, 1225, - 1226, 1227, 2201, 310, 156, 1788, 1789, 236, 310, 341, - 277, 278, 378, 329, 1580, 1581, 83, 1884, 285, 286, - 224, 25, 301, 441, 291, 292, 200, 1181, 1182, 1183, - 56, 1814, 1117, 180, 441, 442, 107, 1191, 213, 47, - 1823, 407, 1817, 300, 1819, 240, 1612, 120, 30, 360, - 2232, 358, 279, 368, 62, 167, 358, 399, 1821, 166, - 1214, 240, 288, 1913, 154, 260, 1220, 1221, 1222, 1223, - 1087, 115, 1226, 1227, 1159, 2072, 188, 1852, 195, 1053, - 9, 260, 448, 1933, 1934, 356, 1203, 60, 1105, 236, - 9, 266, 275, 12, 102, 1615, 15, 16, 1163, 72, - 207, 449, 450, 418, 175, 1173, 376, 1870, 215, 1884, - 368, 285, 437, 380, 449, 450, 441, 188, 1203, 236, - 93, 455, 1859, 213, 128, 2063, 243, 56, 101, 324, - 307, 126, 284, 455, 1984, 25, 26, 1987, 449, 450, - 451, 452, 346, 454, 126, 372, 457, 173, 455, 2331, - 1936, 253, 254, 455, 337, 1381, 1116, 368, 202, 167, - 418, 455, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 195, - 272, 273, 442, 1956, 264, 1020, 266, 67, 1376, 69, - 188, 288, 236, 1749, 441, 442, 456, 319, 1754, 455, - 2327, 418, 1975, 1153, 377, 1280, 379, 223, 315, 240, - 1045, 8, 1988, 1989, 258, 178, 214, 418, 2345, 1992, - 236, 219, 258, 103, 104, 105, 442, 243, 213, 260, - 236, 416, 2072, 231, 455, 1310, 169, 2165, 35, 1246, - 1967, 923, 2046, 11, 1388, 1389, 1390, 1391, 1392, 1393, - 1394, 1583, 374, 375, 260, 299, 441, 25, 26, 941, - 2033, 2034, 1749, 1370, 1371, 8, 167, 1754, 304, 2042, - 150, 378, 152, 227, 228, 208, 195, 1833, 263, 1832, - 160, 266, 1357, 216, 441, 1841, 2126, 188, 240, 57, - 1365, 1606, 35, 1257, 124, 1370, 1371, 1695, 455, 315, - 407, 90, 91, 1212, 223, 404, 1621, 1216, 260, 408, - 1438, 195, 1319, 1441, 526, 1224, 1225, 236, 1446, 531, - 120, 319, 320, 356, 243, 296, 297, 116, 96, 97, - 311, 99, 1885, 1889, 332, 33, 334, 135, 36, 310, - 108, 448, 2270, 600, 253, 254, 44, 45, 46, 159, - 310, 1358, 236, 163, 234, 455, 404, 2, 2131, 243, - 408, 6, 378, 272, 273, 195, 2139, 356, 248, 1961, - 444, 1963, 166, 319, 169, 321, 170, 449, 450, 451, - 452, 2154, 454, 151, 152, 356, 2151, 2087, 2153, 461, - 278, 407, 280, 455, 162, 411, 315, 233, 234, 195, - 891, 319, 1, 321, 895, 4, 236, 2247, 356, 2182, - 901, 2184, 2252, 243, 239, 906, 907, 438, 2191, 440, - 19, 912, 913, 914, 442, 255, 442, 153, 919, 155, - 29, 315, 448, 265, 925, 267, 1511, 435, 2211, 2212, - 236, 156, 157, 934, 935, 2172, 937, 243, 1664, 451, - 452, 1849, 454, 449, 450, 451, 452, 455, 454, 378, - 158, 2014, 227, 228, 63, 461, 153, 341, 155, 237, - 185, 319, 2276, 321, 233, 234, 191, 455, 176, 449, - 450, 451, 452, 359, 454, 315, 455, 457, 407, 270, - 271, 455, 411, 455, 378, 986, 194, 455, 449, 450, - 451, 452, 455, 454, 216, 294, 295, 222, 270, 271, - 405, 226, 2285, 427, 428, 429, 430, 455, 356, 315, - 442, 401, 235, 442, 455, 1016, 195, 455, 182, 448, - 455, 283, 280, 1749, 280, 403, 1643, 2264, 1754, 277, - 2267, 2133, 403, 2135, 242, 395, 335, 336, 378, 24, - 455, 381, 382, 356, 332, 449, 450, 451, 452, 372, - 454, 1052, 442, 457, 448, 1620, 214, 236, 1643, 2122, - 455, 107, 6, 442, 243, 9, 427, 428, 429, 430, - 1687, 367, 378, 1590, 352, 384, 56, 442, 1079, 2316, - 236, 85, 290, 175, 1649, 1653, 1087, 1088, 455, 356, - 351, 1656, 372, 202, 1711, 1749, 283, 109, 1663, 236, - 1754, 1669, 1687, 363, 1105, 211, 455, 11, 448, 1626, - 249, 2348, 68, 280, 392, 410, 1633, 280, 455, 356, - 1121, 25, 26, 249, 233, 23, 1711, 277, 1129, 455, - 442, 240, 1133, 236, 1751, 343, 315, 280, 82, 301, - 455, 1142, 448, 84, 1145, 353, 427, 428, 429, 430, - 84, 436, 261, 57, 98, 1720, 442, 400, 1723, 442, - 449, 450, 451, 452, 442, 454, 1751, 1168, 457, 384, - 1171, 1793, 1794, 1795, 1796, 317, 435, 286, 234, 403, - 1181, 1182, 1183, 292, 200, 442, 449, 450, 451, 452, - 1191, 454, 96, 97, 457, 99, 319, 403, 364, 378, - 449, 450, 451, 452, 108, 454, 1207, 415, 457, 218, - 319, 1212, 156, 1214, 55, 1216, 384, 326, 27, 1220, - 1221, 1222, 1223, 1224, 1225, 1226, 1227, 441, 407, 188, - 339, 456, 1797, 364, 459, 460, 372, 455, 1803, 356, - 184, 442, 455, 227, 225, 438, 346, 151, 152, 214, - 109, 195, 405, 236, 363, 364, 306, 366, 162, 449, - 450, 451, 452, 442, 454, 374, 37, 457, 381, 448, - 287, 2229, 448, 281, 403, 384, 458, 27, 400, 362, - 1845, 225, 462, 2083, 400, 1286, 174, 9, 232, 236, - 455, 442, 236, 405, 238, 1296, 405, 241, 455, 243, - 136, 107, 172, 17, 188, 402, 441, 236, 1309, 458, - 30, 127, 458, 458, 458, 1316, 31, 458, 33, 205, - 458, 36, 1323, 128, 458, 458, 458, 56, 458, 1330, - 274, 46, 403, 237, 458, 434, 1904, 1854, 458, 130, - 319, 1342, 348, 1860, 132, 1910, 455, 1348, 133, 100, - 1915, 399, 403, 1354, 137, 49, 138, 402, 400, 1924, - 397, 402, 180, 1928, 143, 248, 436, 49, 146, 180, - 112, 315, 1373, 333, 12, 13, 14, 380, 442, 114, - 1854, 114, 20, 365, 441, 403, 187, 1388, 1389, 1390, - 1391, 1392, 1393, 1394, 309, 442, 341, 236, 342, 163, - 134, 82, 438, 2020, 171, 403, 210, 403, 366, 1410, - 49, 218, 180, 210, 122, 280, 193, 98, 447, 454, - 58, 446, 218, 270, 457, 233, 457, 457, 341, 1430, - 457, 398, 403, 373, 378, 2020, 131, 266, 269, 265, - 187, 331, 403, 387, 388, 400, 49, 138, 352, 8, - 180, 1452, 438, 126, 403, 9, 307, 2022, 308, 202, - 438, 176, 173, 407, 344, 404, 181, 329, 268, 413, - 125, 435, 435, 110, 49, 175, 141, 263, 142, 194, - 240, 262, 285, 144, 113, 300, 284, 431, 392, 394, - 289, 7, 116, 220, 67, 439, 442, 156, 442, 156, - 328, 129, 136, 184, 448, 328, 102, 2121, 49, 240, - 2075, 218, 456, 1514, 1515, 145, 95, 148, 156, 157, - 264, 2086, 267, 2088, 91, 221, 203, 242, 438, 192, - 390, 49, 406, 307, 344, 240, 2121, 240, 442, 2107, - 147, 174, 307, 140, 180, 293, 423, 185, 49, 6, - 22, 455, 354, 191, 54, 236, 132, 238, 193, 178, - 241, 188, 211, 1331, 514, 597, 1154, 136, 6, 444, - 1362, 9, 1371, 960, 1155, 290, 214, 1900, 109, 1580, - 1581, 1853, 610, 227, 222, 1586, 1587, 113, 226, 239, - 49, 584, 160, 274, 886, 318, 861, 1908, 393, 314, - 1696, 1694, 1585, 1604, 1692, 2119, 874, 2102, 565, 2174, - 974, 1612, 2240, 124, 82, 836, 1776, 2234, 256, 257, - 496, 1857, 1062, 338, 262, 1423, 1627, 1422, 343, 1735, - 98, 1632, 1633, 1067, 272, 1810, 1774, 2254, 353, 1276, - 1273, 279, 357, 1820, 82, 1553, 284, 2004, 1283, 2234, - 1289, 2219, 1841, 1578, 1105, 2220, 2221, 1858, 1602, 2224, - 98, 342, 1358, 1664, 302, 1324, 2231, 1874, 1127, 2254, - 1139, 2239, 2240, 1633, 1675, 1129, 1677, 2057, 1633, 926, - 1713, 2175, 1865, 2062, 2068, 1240, 1, 1527, 2273, 1615, - 1117, 6, 1643, 987, 9, 246, 1236, 12, 13, 14, - 415, 1294, 1070, 2268, 329, 866, 387, 388, 619, 177, - 425, 149, 994, 2256, 57, 1466, 184, 827, 1916, -1, - -1, -1, 1001, -1, -1, -1, -1, -1, -1, 2297, - 2298, -1, 413, 2301, 2299, 2303, 2210, -1, 1739, 1740, - 1741, -1, 2327, 58, -1, -1, 184, -1, 1749, -1, - 431, -1, -1, 1754, -1, -1, -1, 195, 439, -1, - 2345, 442, -1, -1, 2329, -1, 1767, 82, 236, -1, - 238, 2339, -1, 241, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 98, -1, -1, -1, 225, -1, -1, - -1, -1, -1, -1, 232, 2269, -1, -1, 236, -1, - 238, -1, -1, 241, -1, 243, 274, -1, -1, -1, - 448, 449, 450, 451, 452, -1, 454, -1, 456, 457, - -1, 459, 460, -1, -1, 1826, -1, -1, -1, -1, - -1, 1832, 1833, -1, -1, -1, 274, -1, -1, -1, - 1841, 156, 157, -1, -1, -1, -1, -1, -1, 1850, - -1, -1, -1, -1, 2328, -1, -1, 1858, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 184, - 185, -1, -1, -1, 342, -1, 191, 315, -1, -1, - 195, -1, -1, -1, 1885, -1, -1, -1, 1889, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 214, - -1, -1, -1, -1, 342, -1, -1, 222, 1909, -1, - 225, 226, 1913, -1, -1, -1, -1, 232, -1, 387, - 388, 236, -1, 238, -1, -1, 241, -1, 243, 397, - -1, -1, 1933, 1934, -1, -1, -1, -1, -1, -1, - 378, 256, 257, -1, -1, 413, -1, 262, -1, 387, - 388, -1, -1, -1, -1, 423, -1, 272, -1, 274, - -1, -1, -1, 431, 279, -1, 404, -1, 436, 407, - 408, 439, -1, 441, 442, 413, -1, -1, -1, -1, - -1, -1, -1, 1984, -1, -1, 1987, 302, -1, -1, - -1, -1, -1, 431, -1, -1, -1, -1, -1, -1, - 315, 439, -1, -1, 442, -1, -1, -1, -1, -1, - 448, -1, -1, 2014, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 342, -1, -1, + 84, 176, 230, 412, 571, 460, 132, 934, 323, 721, + 535, 536, 893, 1312, 868, 869, 1242, 685, 1242, 687, + 1131, 196, 197, 904, 1059, 895, 201, 202, 203, 204, + 205, 750, 207, 653, 209, 1242, 692, 1242, 1242, 1266, + 1267, 1268, 1750, 1275, 1380, 898, 1380, 1380, 912, 1380, + 1155, 1235, 1380, 625, 1138, 1152, 228, 1380, 230, 231, + 9, 925, 234, 13, 487, 894, 369, 193, 6, 1121, + 6, 49, 6, 248, 70, 250, 160, 49, 603, 1422, + 1423, 22, 257, 1079, 231, 892, 9, 234, 1272, 6, + 265, 1087, 17, 70, 901, 902, 17, 1052, 6, 9, + 70, 1212, 258, 23, 279, 280, 49, 282, 86, 916, + 917, 283, 30, 288, 54, 287, 49, 289, 70, 1303, + 85, 37, 72, 930, 931, 1316, 298, 73, 70, 301, + 48, 92, 1899, 182, 21, 121, 283, 1133, 88, 1029, + 287, 444, 289, 170, 32, 171, 56, 9, 1524, 1206, + 56, 298, 327, 56, 301, 330, 331, 9, 333, 1211, + 1014, 1413, 390, 48, 392, 1019, 1542, 1351, 1420, 171, + 820, 40, 28, 121, 349, 61, 1884, 49, 70, 223, + 70, 96, 214, 30, 251, 625, 66, 168, 360, 23, + 198, 366, 348, 300, 862, 31, 49, 113, 370, 355, + 96, 1298, 88, 89, 121, 377, 874, 187, 422, 122, + 1887, 325, 322, 360, 1590, 518, 388, 1172, 390, 66, + 392, 279, 306, 370, 1078, 1032, 107, 118, 25, 224, + 377, 200, 240, 171, 240, 463, 411, 236, 1290, 402, + 372, 413, 150, 415, 419, 86, 914, 70, 1175, 214, + 114, 56, 260, 409, 1630, 1062, 174, 118, 269, 115, + 416, 236, 0, 173, 836, 1129, 122, 1372, 415, 1453, + 693, 404, 1356, 429, 110, 408, 164, 1845, 107, 236, + 895, 30, 455, 350, 1381, 260, 418, 236, 63, 1096, + 462, 463, 464, 236, 214, 458, 406, 453, 473, 914, + 1352, 258, 218, 455, 919, 1402, 1533, 479, 118, 393, + 466, 986, 396, 223, 0, 462, 285, 464, 493, 494, + 1663, 435, 380, 1555, 25, 26, 1669, 70, 214, 1406, + 1184, 128, 1139, 180, 441, 1003, 1413, 1144, 1334, 2016, + 248, 347, 299, 1420, 1401, 236, 175, 325, 523, 563, + 1006, 346, 248, 325, 1004, 1005, 244, 210, 533, 188, + 1412, 341, 22, 519, 360, 1320, 67, 411, 69, 341, + 331, 986, 236, 354, 1255, 236, 322, 126, 998, 999, + 214, 537, 1235, 360, 236, 560, 233, 256, 455, 561, + 360, 1767, 325, 568, 227, 228, 836, 214, 260, 1280, + 236, 218, 103, 104, 105, 123, 455, 293, 975, 305, + 2177, 583, 584, 539, 561, 442, 442, 573, 360, 1272, + 1531, 301, 578, 455, 280, 122, 236, 602, 1235, 437, + 441, 1515, 607, 394, 609, 1242, 1300, 612, 424, 614, + 442, 616, 617, 442, 2012, 183, 621, 2015, 364, 150, + 1303, 152, 1643, 325, 301, 1284, 318, 435, 1454, 160, + 406, 457, 1559, 435, 1271, 1272, 1718, 403, 360, 341, + 360, 436, 449, 450, 451, 452, 424, 454, 9, 400, + 457, 433, 654, 455, 325, 1314, 403, 457, 663, 664, + 1105, 409, 648, 442, 434, 986, 1303, 403, 1351, 442, + 168, 411, 435, 441, 442, 448, 442, 424, 442, 1115, + 1185, 1186, 1187, 438, 455, 457, 321, 404, 833, 442, + 1195, 408, 442, 441, 409, 442, 66, 442, 441, 442, + 1582, 1338, 1361, 234, 442, 1342, 1343, 360, 1345, 1644, + 443, 1216, 149, 1218, 1351, 1220, 442, 248, 498, 1224, + 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1207, 1593, 236, + 441, 442, 1614, 435, 867, 457, 692, 457, 1944, 455, + 1185, 1186, 1187, 311, 1910, 1874, 1910, 1910, 442, 1910, + 1195, 442, 1910, 455, 1007, 441, 1556, 1910, 363, 207, + 1822, 251, 1562, 1589, 435, 1215, 2164, 117, 316, 2307, + 1453, 1216, 1222, 1218, 166, 1220, 1178, 1222, 1692, 1224, + 1225, 1226, 1227, 1228, 1229, 1230, 1231, 360, 240, 1995, + 139, 1997, 455, 198, 199, 442, 449, 450, 451, 452, + 223, 454, 442, 187, 457, 1819, 811, 1821, 260, 139, + 9, 1718, 236, 28, 816, 207, 364, 248, 820, 2025, + 120, 823, 824, 215, 126, 236, 236, 832, 830, 187, + 441, 187, 1282, 11, 195, 240, 187, 63, 1324, 816, + 1854, 8, 1328, 820, 455, 163, 823, 824, 456, 376, + 2056, 2057, 183, 830, 1513, 260, 354, 1399, 236, 236, + 350, 150, 1776, 233, 1185, 1186, 1187, 1000, 35, 2061, + 401, 2063, 1886, 310, 1195, 236, 449, 450, 451, 452, + 247, 454, 243, 1319, 457, 1390, 1391, 1392, 1393, 1394, + 1395, 1396, 894, 71, 1588, 187, 288, 1218, 240, 1116, + 115, 887, 312, 1224, 1225, 1226, 1227, 405, 2081, 1230, + 1231, 442, 175, 915, 441, 442, 524, 919, 260, 921, + 1462, 923, 924, 167, 926, 1982, 1983, 1984, 1985, 456, + 901, 301, 299, 1383, 245, 442, 1153, 27, 1383, 941, + 180, 448, 236, 1769, 188, 1390, 1391, 1392, 1393, 1394, + 1395, 1396, 954, 1835, 315, 305, 1741, 1742, 1743, 195, + 931, 263, 311, 919, 348, 102, 1666, 972, 269, 971, + 1897, 289, 403, 1522, 198, 156, 157, 954, 1428, 187, + 311, 311, 206, 341, 1621, 899, 434, 989, 411, 441, + 1790, 1791, 348, 2049, 971, 2049, 195, 348, 984, 310, + 236, 225, 1004, 1005, 185, 442, 920, 243, 922, 1891, + 191, 2203, 2049, 927, 2049, 2049, 1816, 378, 442, 245, + 260, 1563, 936, 1937, 1938, 1825, 1852, 1004, 1005, 1749, + 1572, 442, 437, 245, 1754, 1755, 441, 236, 1758, 1759, + 1760, 222, 1762, 1763, 243, 226, 407, 358, 12, 245, + 442, 15, 16, 277, 278, 349, 348, 2263, 2264, 9, + 166, 285, 286, 236, 442, 442, 329, 291, 292, 1390, + 1391, 1392, 1393, 1394, 1395, 1396, 1990, 1991, 195, 315, + 288, 442, 449, 450, 310, 126, 156, 448, 11, 156, + 9, 180, 200, 12, 90, 91, 15, 16, 310, 441, + 442, 207, 25, 26, 240, 2234, 56, 891, 258, 215, + 28, 895, 1823, 240, 310, 1117, 315, 901, 245, 236, + 116, 300, 906, 907, 260, 426, 243, 211, 912, 913, + 914, 1087, 358, 2074, 57, 919, 1819, 363, 1821, 1053, + 441, 925, 378, 1938, 455, 455, 358, 236, 279, 1105, + 934, 935, 236, 937, 304, 123, 380, 1159, 1958, 1164, + 1915, 1872, 358, 236, 455, 1, 167, 1617, 4, 277, + 251, 1854, 213, 96, 97, 248, 99, 1977, 60, 378, + 1935, 1936, 288, 19, 311, 108, 240, 188, 324, 213, + 72, 1177, 356, 29, 1994, 1990, 1991, 115, 315, 167, + 2065, 455, 986, 1886, 2333, 1207, 260, 195, 407, 83, + 154, 93, 448, 247, 284, 120, 442, 284, 455, 101, + 293, 1666, 263, 173, 1861, 266, 195, 63, 151, 152, + 1207, 1986, 1016, 1378, 1989, 2035, 2036, 8, 319, 162, + 321, 372, 266, 455, 2044, 195, 1751, 9, 236, 448, + 159, 1756, 307, 275, 163, 243, 296, 297, 1020, 455, + 455, 378, 441, 442, 35, 299, 9, 236, 1052, 213, + 310, 188, 399, 223, 243, 456, 368, 1608, 459, 460, + 416, 240, 1284, 1045, 202, 455, 236, 418, 50, 253, + 254, 2048, 1623, 243, 1250, 1079, 178, 214, 294, 295, + 1585, 260, 2167, 1087, 1088, 441, 1751, 319, 272, 273, + 368, 1756, 1314, 56, 237, 337, 356, 455, 368, 2074, + 264, 1105, 266, 356, 368, 2329, 418, 315, 240, 368, + 311, 448, 1969, 2133, 253, 254, 1834, 1121, 169, 335, + 336, 2141, 1697, 2347, 120, 1129, 315, 1261, 260, 1133, + 278, 202, 280, 272, 273, 377, 2156, 379, 1142, 1361, + 418, 1145, 374, 375, 1366, 315, 202, 1323, 418, 442, + 1372, 1373, 310, 2128, 418, 448, 600, 208, 326, 418, + 923, 423, 233, 331, 2184, 216, 2186, 526, 1172, 1887, + 378, 1175, 531, 2193, 436, 1372, 1373, 233, 941, 227, + 228, 1185, 1186, 1187, 240, 2089, 1362, 2272, 2, 378, + 135, 1195, 6, 2213, 2214, 449, 450, 455, 404, 407, + 166, 1963, 408, 1965, 170, 261, 356, 1211, 378, 352, + 1751, 444, 1216, 195, 1218, 1756, 1220, 153, 407, 155, + 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 451, 452, + 286, 454, 195, 319, 442, 321, 292, 407, 455, 1440, + 448, 411, 1443, 225, 1, 233, 234, 1448, 319, 392, + 2153, 319, 2155, 321, 236, 326, 438, 169, 440, 448, + 223, 243, 265, 319, 267, 356, 153, 2287, 155, 319, + 326, 321, 442, 236, 2249, 239, 1851, 442, 448, 2254, + 243, 227, 228, 339, 270, 271, 1290, 270, 271, 341, + 47, 1513, 455, 364, 233, 234, 1300, 359, 2016, 442, + 455, 2278, 986, 455, 455, 62, 455, 363, 364, 1313, + 366, 455, 455, 216, 455, 405, 1320, 2174, 374, 356, + 235, 442, 1216, 1327, 455, 455, 1220, 182, 384, 283, + 1334, 455, 280, 315, 1228, 1229, 280, 403, 449, 450, + 451, 452, 1346, 454, 33, 102, 403, 36, 1352, 405, + 461, 277, 315, 395, 1358, 44, 45, 46, 124, 31, + 24, 33, 455, 356, 36, 449, 450, 451, 452, 214, + 454, 1375, 332, 2135, 46, 2137, 455, 461, 372, 449, + 450, 451, 452, 107, 454, 384, 1390, 1391, 1392, 1393, + 1394, 1395, 1396, 442, 367, 56, 378, 1622, 442, 455, + 427, 428, 429, 430, 236, 85, 2124, 9, 1412, 2266, + 167, 175, 2269, 356, 455, 378, 1592, 427, 428, 429, + 430, 351, 1644, 372, 283, 407, 1651, 109, 1432, 195, + 363, 188, 236, 1658, 211, 455, 249, 1121, 68, 280, + 1665, 410, 280, 455, 407, 356, 249, 1644, 411, 1655, + 1454, 23, 1628, 427, 428, 429, 430, 214, 277, 1635, + 455, 2318, 219, 442, 236, 1671, 448, 1689, 280, 158, + 236, 301, 84, 84, 231, 455, 400, 243, 436, 442, + 82, 1795, 1796, 1797, 1798, 448, 442, 176, 384, 255, + 442, 1713, 1689, 2350, 317, 435, 98, 1722, 403, 234, + 1725, 1185, 1186, 1187, 176, 194, 200, 442, 319, 181, + 403, 1195, 1516, 1517, 364, 218, 1713, 55, 449, 450, + 451, 452, 194, 454, 441, 27, 457, 1211, 384, 188, + 372, 1753, 1216, 455, 1218, 356, 1220, 455, 1222, 364, + 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 442, 315, + 227, 225, 438, 242, 346, 109, 1753, 214, 236, 405, + 306, 37, 319, 320, 449, 450, 451, 452, 287, 454, + 242, 381, 457, 281, 1799, 332, 448, 334, 1582, 1583, + 1805, 403, 184, 458, 1588, 1589, 449, 450, 451, 452, + 27, 454, 400, 195, 457, 449, 450, 451, 452, 362, + 454, 290, 1606, 457, 462, 400, 1290, 174, 455, 442, + 1614, 455, 378, 9, 2231, 381, 382, 405, 290, 236, + 136, 107, 1847, 17, 441, 1629, 2085, 172, 188, 402, + 1634, 1635, 458, 236, 236, 30, 238, 127, 458, 241, + 458, 243, 314, 449, 450, 451, 452, 128, 454, 458, + 205, 457, 56, 458, 343, 449, 450, 451, 452, 458, + 454, 458, 1666, 457, 353, 458, 338, 458, 1352, 11, + 403, 343, 274, 1677, 458, 1679, 458, 458, 435, 434, + 1856, 353, 448, 25, 26, 357, 1862, 1912, 130, 132, + 348, 319, 1917, 133, 100, 399, 403, 49, 455, 1383, + 1906, 1926, 137, 402, 138, 1930, 1390, 1391, 1392, 1393, + 1394, 1395, 1396, 315, 400, 57, 397, 402, 180, 143, + 436, 248, 1856, 49, 146, 180, 415, 112, 1412, 333, + 380, 442, 122, 12, 13, 14, 114, 1741, 1742, 1743, + 342, 20, 365, 415, 114, 441, 187, 1751, 403, 442, + 341, 309, 1756, 425, 96, 97, 236, 99, 163, 134, + 171, 403, 438, 210, 403, 1769, 108, 366, 49, 218, + 180, 210, 280, 193, 447, 454, 378, 446, 270, 58, + 218, 233, 457, 398, 341, 387, 388, 457, 373, 457, + 457, 131, 266, 403, 269, 265, 187, 331, 403, 2024, + 2022, 49, 400, 138, 8, 407, 180, 438, 126, 151, + 152, 413, 438, 403, 9, 308, 307, 173, 202, 329, + 162, 404, 268, 344, 1828, 2022, 125, 435, 110, 431, + 1834, 1835, 49, 141, 435, 285, 175, 439, 263, 1843, + 442, 142, 240, 262, 144, 2123, 448, 300, 1852, 113, + 394, 284, 2077, 289, 7, 116, 1860, 220, 67, 156, + 442, 156, 129, 2088, 328, 2090, 136, 328, 102, 49, + 218, 240, 145, 95, 267, 264, 148, 156, 157, 91, + 221, 203, 192, 1887, 390, 438, 49, 1891, 406, 307, + 344, 240, 147, 240, 174, 237, 180, 423, 1582, 1583, + 307, 2123, 140, 2109, 49, 293, 185, 1911, 6, 354, + 22, 1915, 191, 54, 132, 193, 178, 188, 211, 514, + 1154, 1335, 444, 136, 1364, 1373, 597, 1155, 960, 1855, + 1614, 1935, 1936, 1902, 109, 214, 227, 393, 49, 113, + 160, 239, 318, 222, 610, 886, 584, 226, 861, 1910, + 1698, 2176, 1696, 1587, 1694, 2121, 565, 974, 82, 2104, + 874, 2242, 836, 124, 1778, 496, 1859, 1062, 1737, 1067, + 1425, 1424, 1776, 1812, 98, 1280, 1555, 256, 257, 1277, + 1822, 1287, 1986, 262, 1843, 1989, 1293, 1580, 2006, 1105, + 1860, 1604, 1328, 272, 1362, 1876, 1129, 2222, 2223, 1127, + 279, 2226, 1635, 926, 1139, 284, 2059, 1635, 2233, 1715, + 352, 1867, 2016, 2064, 2236, 2221, 6, 1117, 2177, 9, + 2070, 1529, 1244, 302, 329, 1617, 987, 246, 1240, 866, + 1298, 1070, 619, 57, 2256, 2241, 2242, 994, 2258, 2236, + 827, 1468, 1918, -1, 2048, 2270, 1001, -1, -1, -1, + 392, 2055, -1, 2275, -1, -1, -1, -1, -1, 2256, + 184, -1, -1, -1, -1, -1, -1, 1751, -1, -1, + 2074, 195, 1756, -1, -1, -1, 2301, 1, 2212, -1, + 82, -1, 6, -1, -1, 9, -1, 2091, 12, 13, + 14, -1, 82, 2299, 2300, -1, 98, 2303, -1, 2305, + 442, -1, -1, -1, -1, -1, 2331, 2329, 98, -1, + -1, -1, 236, -1, 238, -1, -1, 241, -1, 243, + -1, -1, -1, -1, 2128, 2347, -1, -1, -1, -1, + -1, -1, -1, -1, 58, 2341, -1, 2271, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, 1, -1, -1, 2046, -1, -1, -1, -1, - -1, -1, 2053, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 21, 378, -1, -1, -1, -1, -1, -1, - -1, 2072, 387, 388, -1, 34, -1, -1, 37, 38, - 39, 40, 41, 42, 43, -1, -1, -1, 2089, -1, - -1, -1, 407, -1, -1, -1, -1, -1, 413, -1, + 274, 1835, -1, -1, -1, -1, -1, -1, 82, 1843, + -1, -1, -1, -1, -1, -1, 156, -1, -1, 448, + 449, 450, 451, 452, 98, 454, -1, 456, 457, -1, + 459, 460, 184, 2187, -1, -1, -1, -1, -1, -1, + -1, 315, -1, -1, 184, -1, 2330, -1, 2202, -1, + -1, 2205, -1, -1, -1, 195, -1, 1891, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 74, 431, 76, 77, 78, - 79, 80, 81, -1, 439, 2126, -1, 442, -1, -1, - -1, -1, -1, 448, 449, 450, -1, -1, -1, 454, - -1, 456, -1, 458, 459, 460, 6, -1, -1, 9, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 118, + -1, 2235, 156, 157, 236, 225, 238, -1, -1, 241, + -1, -1, 232, -1, -1, 2249, 236, -1, 238, -1, + 2254, 241, -1, 243, 378, -1, -1, -1, -1, -1, + 184, 185, -1, 387, 388, -1, -1, 191, -1, -1, + -1, 195, 274, -1, 2278, -1, -1, -1, -1, -1, + -1, -1, -1, 407, 274, 2289, -1, -1, -1, 413, + 214, -1, -1, -1, -1, -1, -1, -1, 222, -1, + -1, 225, 226, -1, -1, -1, -1, 431, 232, -1, + -1, -1, 236, -1, 238, 439, -1, 241, 442, 243, + -1, -1, -1, -1, 448, 315, 0, 1, -1, -1, + 2334, -1, 256, 257, -1, -1, -1, -1, 262, -1, + 342, -1, -1, -1, -1, -1, -1, 21, 272, -1, + 274, -1, 342, -1, -1, 279, -1, -1, -1, -1, + 34, -1, -1, 37, 38, 39, 40, 41, 42, 43, + -1, -1, -1, -1, -1, -1, -1, -1, 302, -1, + -1, -1, -1, -1, -1, 387, 388, -1, 378, -1, + -1, 315, -1, -1, -1, -1, -1, 387, 388, -1, + 74, -1, 76, 77, 78, 79, 80, 81, -1, -1, + -1, 413, -1, -1, -1, -1, -1, 407, 342, -1, + -1, -1, -1, 413, -1, -1, -1, -1, -1, 431, + -1, -1, -1, -1, -1, -1, -1, 439, -1, -1, + 442, 431, -1, -1, 118, -1, -1, -1, -1, 439, + -1, -1, 442, -1, 378, -1, -1, -1, 448, -1, + -1, 135, -1, 387, 388, 139, 456, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, - 139, -1, -1, -1, 2185, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2200, - -1, -1, 2203, -1, -1, -1, -1, -1, 167, 168, + -1, -1, -1, 407, -1, -1, -1, -1, -1, 413, + -1, -1, -1, 167, 168, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 431, -1, 183, + -1, -1, -1, -1, 188, 439, -1, -1, 442, -1, + -1, -1, -1, -1, 448, 449, 450, 201, 82, -1, + 454, -1, 456, -1, 458, 459, 460, -1, -1, -1, + 214, -1, -1, 217, 98, -1, -1, -1, -1, 223, + -1, -1, -1, 227, 228, -1, -1, -1, -1, -1, + -1, 235, 236, -1, -1, 239, -1, -1, -1, 37, + 38, 39, 40, 41, 42, -1, -1, -1, -1, 253, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + 1, -1, 3, -1, 5, -1, -1, -1, -1, 10, + -1, -1, 276, -1, -1, -1, 74, 18, 76, 77, + 78, 79, 80, 81, -1, -1, -1, 291, -1, -1, + -1, -1, -1, 177, 298, -1, 300, -1, -1, -1, + 184, -1, -1, 307, -1, -1, -1, 311, -1, 313, + 51, 52, -1, -1, -1, -1, -1, -1, 59, 323, + 118, -1, -1, -1, -1, -1, 330, -1, 332, -1, + 71, -1, -1, -1, 75, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 87, 351, -1, -1, + 354, -1, 236, -1, 238, -1, -1, 241, -1, -1, + -1, -1, -1, 367, -1, 369, 370, 371, -1, -1, + 111, -1, 82, -1, -1, -1, -1, 118, 119, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 98, 393, + 274, -1, -1, -1, 135, -1, -1, -1, 139, -1, + -1, -1, 1, 201, 3, -1, 5, 411, 149, -1, + -1, 10, -1, -1, -1, 419, 420, 421, -1, 18, + 161, -1, -1, -1, 165, -1, -1, -1, 432, -1, + -1, 435, -1, -1, -1, -1, -1, -1, 179, -1, + 444, -1, 183, -1, -1, 186, -1, -1, 189, 190, + -1, 455, 51, 52, -1, 253, 197, -1, 342, -1, + 59, -1, -1, 204, -1, 206, -1, 177, 209, -1, + -1, -1, 71, -1, 184, -1, 75, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, + -1, -1, -1, 291, -1, -1, -1, -1, -1, -1, + -1, -1, 300, 387, 388, 246, -1, -1, -1, 250, + -1, 252, 111, 397, -1, 313, -1, -1, 259, 118, + 119, -1, -1, -1, -1, -1, 236, 126, 238, 413, + -1, 241, -1, -1, -1, -1, -1, -1, -1, 423, + -1, 282, -1, -1, -1, -1, -1, 431, -1, -1, + 149, -1, 436, -1, -1, 439, 297, 441, 442, -1, + -1, -1, 161, -1, 274, -1, 165, -1, -1, -1, + 311, 369, 370, 371, -1, -1, -1, 318, -1, -1, + 179, -1, -1, -1, -1, -1, 327, 186, -1, -1, + 189, 190, -1, -1, -1, -1, -1, -1, 197, 340, + -1, -1, -1, -1, 345, 204, 347, 206, -1, -1, + 209, -1, -1, -1, 355, -1, -1, -1, -1, -1, + -1, 419, 420, 421, 365, -1, -1, -1, -1, -1, + -1, -1, 342, 374, -1, -1, -1, -1, -1, -1, + -1, -1, 383, -1, 385, 386, -1, 246, 389, -1, + 391, 250, -1, 252, -1, 396, -1, -1, -1, 6, + 259, -1, 9, -1, -1, 12, 13, 14, -1, -1, + 17, 412, -1, -1, 21, -1, 417, 387, 388, -1, + -1, 422, -1, 282, -1, -1, -1, 397, -1, -1, + -1, -1, 433, -1, -1, -1, -1, -1, 297, -1, + -1, 442, -1, 413, 445, -1, -1, -1, -1, -1, + -1, 58, -1, 423, 455, -1, -1, -1, -1, 318, + -1, 431, -1, -1, -1, -1, 436, -1, 327, 439, + -1, 441, 442, -1, -1, 82, -1, -1, -1, -1, + -1, 340, -1, -1, -1, -1, 345, -1, 347, -1, + -1, 98, -1, -1, -1, 6, 355, -1, 9, -1, + -1, 12, 13, 14, -1, -1, 365, -1, -1, -1, + -1, -1, -1, -1, -1, 374, -1, -1, -1, -1, + -1, -1, -1, -1, 383, -1, 385, 386, -1, -1, + 389, -1, 391, -1, -1, -1, -1, 396, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, -1, 156, + 157, -1, -1, 412, -1, -1, -1, -1, 417, -1, + -1, -1, -1, 422, -1, -1, -1, -1, -1, -1, + -1, 82, -1, -1, 433, -1, -1, 184, 185, -1, + -1, -1, -1, 442, 191, -1, 445, 98, 195, -1, + -1, -1, -1, -1, -1, -1, 455, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 214, -1, -1, + -1, -1, -1, -1, -1, 222, -1, -1, 225, 226, + -1, -1, -1, -1, -1, 232, -1, -1, -1, 236, + -1, 238, -1, -1, 241, -1, 243, -1, -1, -1, + -1, -1, -1, -1, -1, 156, 157, -1, -1, 256, + 257, -1, -1, -1, -1, 262, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 272, -1, 274, -1, -1, + -1, -1, 279, 184, 185, -1, -1, -1, -1, -1, + 191, -1, -1, -1, 195, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 302, -1, -1, -1, -1, + -1, -1, -1, 214, -1, -1, -1, -1, 315, -1, + -1, 222, -1, -1, 225, 226, -1, -1, -1, -1, + -1, 232, -1, -1, -1, 236, -1, 238, -1, -1, + 241, -1, 243, -1, -1, 342, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 256, 257, -1, -1, -1, + -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 272, -1, 274, -1, -1, -1, -1, 279, -1, + -1, 378, -1, -1, -1, -1, -1, -1, -1, -1, + 387, 388, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 302, -1, -1, -1, -1, -1, 404, -1, -1, + 407, 408, -1, -1, 315, -1, 413, 3, -1, 5, + -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, + -1, -1, 18, -1, 431, -1, -1, -1, -1, -1, + -1, 342, 439, -1, -1, 442, -1, -1, -1, -1, + -1, 448, 449, 450, -1, -1, -1, 454, -1, 456, + -1, 458, 459, 460, -1, 51, 52, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, 378, -1, -1, + -1, -1, -1, -1, -1, 71, 387, 388, -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 82, -1, 183, -1, -1, -1, -1, 188, - -1, -1, 2233, -1, -1, -1, -1, -1, 98, -1, - -1, -1, 201, 82, -1, -1, 2247, -1, -1, -1, - -1, 2252, 112, -1, -1, 214, -1, -1, 217, 98, - -1, -1, -1, -1, 223, -1, -1, -1, 227, 228, - -1, -1, -1, -1, -1, 2276, 235, 236, -1, -1, - 239, -1, -1, -1, -1, -1, 2287, -1, -1, -1, - -1, -1, -1, -1, 253, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, 1, -1, 3, -1, 5, - -1, -1, -1, -1, 10, -1, -1, 276, -1, -1, - -1, -1, 18, -1, 184, -1, -1, -1, -1, -1, - -1, 2332, 291, -1, -1, 195, -1, -1, 177, 298, - -1, 300, -1, -1, -1, 184, -1, -1, 307, -1, - 210, -1, 311, -1, 313, 51, 52, -1, -1, -1, - -1, -1, -1, 59, 323, 225, -1, -1, -1, -1, - -1, 330, 232, 332, -1, 71, 236, -1, 238, 75, - -1, 241, -1, 243, -1, -1, -1, -1, -1, -1, - -1, 87, 351, -1, -1, 354, -1, 236, -1, 238, - -1, -1, 241, -1, -1, -1, -1, -1, 367, -1, - 369, 370, 371, -1, 274, 111, -1, -1, -1, -1, - -1, -1, 118, 119, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 393, 274, -1, -1, -1, 135, - -1, -1, -1, 139, -1, -1, -1, 1, -1, 3, - -1, 5, 411, 149, -1, 315, 10, -1, -1, -1, - 419, 420, 421, -1, 18, 161, -1, -1, -1, 165, - -1, -1, -1, 432, -1, -1, 435, -1, -1, -1, - -1, -1, 342, 179, -1, 444, -1, 183, -1, -1, - 186, -1, -1, 189, 190, -1, 455, 51, 52, -1, - -1, 197, -1, 342, -1, 59, -1, -1, 204, -1, - 206, -1, -1, 209, -1, -1, -1, 71, 378, -1, - -1, 75, -1, -1, -1, -1, -1, 387, 388, -1, - -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 407, 387, 388, - 246, -1, -1, 413, 250, -1, 252, 111, 397, -1, - -1, -1, -1, 259, 118, 119, -1, -1, -1, -1, - -1, 431, 126, -1, 413, -1, -1, -1, -1, 439, - -1, -1, 442, -1, 423, -1, 282, -1, 448, -1, - -1, -1, 431, -1, -1, 149, -1, 436, -1, -1, - 439, 297, 441, 442, -1, -1, -1, 161, -1, -1, - -1, 165, -1, -1, -1, 311, -1, -1, -1, -1, - -1, -1, 318, -1, -1, 179, -1, -1, -1, -1, - -1, 327, 186, -1, -1, 189, 190, -1, -1, -1, - -1, -1, -1, 197, 340, -1, -1, -1, -1, 345, - 204, 347, 206, -1, -1, 209, -1, -1, -1, 355, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 365, - -1, -1, -1, -1, -1, -1, -1, -1, 374, -1, - -1, -1, -1, -1, -1, -1, -1, 383, -1, 385, - 386, -1, 246, 389, -1, 391, 250, -1, 252, -1, - 396, -1, -1, -1, 6, 259, -1, 9, -1, -1, - 12, 13, 14, -1, -1, 17, 412, -1, -1, 21, - -1, 417, -1, -1, -1, -1, 422, -1, 282, -1, - -1, -1, -1, -1, -1, -1, -1, 433, -1, -1, - -1, -1, -1, 297, -1, -1, 442, -1, -1, 445, - -1, -1, -1, -1, -1, -1, 58, -1, -1, 455, - -1, -1, -1, -1, 318, -1, -1, -1, -1, -1, - -1, -1, -1, 327, -1, -1, -1, -1, -1, -1, - 82, -1, -1, -1, -1, -1, 340, -1, -1, -1, - -1, 345, -1, 347, -1, -1, 98, -1, -1, -1, - 6, 355, -1, 9, -1, -1, 12, 13, 14, -1, - -1, 365, -1, -1, -1, -1, -1, -1, -1, -1, - 374, -1, -1, -1, -1, -1, -1, -1, -1, 383, - -1, 385, 386, -1, -1, 389, -1, 391, -1, -1, - -1, -1, 396, 9, -1, -1, -1, -1, -1, -1, - -1, -1, 58, -1, 156, 157, -1, -1, 412, -1, - -1, -1, -1, 417, -1, -1, -1, -1, 422, -1, - -1, -1, -1, -1, -1, -1, 82, -1, -1, 433, - -1, -1, 184, 185, -1, -1, -1, -1, 442, 191, - -1, 445, 98, 195, -1, -1, -1, -1, -1, -1, - -1, 455, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 214, -1, -1, -1, 82, -1, -1, -1, - 222, -1, -1, 225, 226, -1, -1, -1, -1, -1, - 232, -1, 98, -1, 236, -1, 238, -1, -1, 241, - -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, - 156, 157, -1, -1, 256, 257, -1, -1, -1, -1, - 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 272, -1, 274, -1, -1, -1, -1, 279, 184, 185, - -1, -1, -1, -1, -1, 191, -1, -1, -1, 195, + -1, 87, -1, -1, -1, -1, 407, -1, -1, -1, + -1, -1, 413, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, + 431, -1, 118, 119, -1, -1, -1, -1, 439, -1, + -1, 442, -1, -1, -1, -1, -1, 448, 449, 450, + -1, -1, -1, 454, -1, 456, -1, 458, 459, 460, + -1, -1, -1, 149, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 161, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 302, -1, -1, -1, -1, -1, -1, -1, 214, -1, - -1, -1, -1, 315, -1, -1, 222, -1, 184, 225, - 226, -1, -1, -1, -1, -1, 232, -1, -1, 195, - 236, -1, 238, -1, -1, 241, -1, 243, -1, -1, - 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 256, 257, -1, -1, -1, -1, 262, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 272, -1, 274, -1, - 236, -1, 238, 279, -1, 241, 378, 243, -1, -1, - -1, -1, -1, -1, -1, 387, 388, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 302, -1, -1, -1, - -1, -1, 404, -1, -1, 407, 408, -1, 274, 315, - -1, 413, 3, -1, 5, -1, -1, -1, -1, 10, - -1, -1, -1, -1, -1, -1, -1, 18, -1, 431, - -1, -1, -1, -1, -1, -1, 342, 439, -1, -1, - 442, -1, -1, -1, -1, -1, 448, 449, 450, 315, - -1, -1, 454, -1, 456, -1, 458, 459, 460, -1, - 51, 52, -1, -1, -1, -1, -1, -1, 59, -1, - -1, -1, 378, -1, -1, -1, 342, -1, -1, -1, - 71, 387, 388, -1, 75, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, - -1, 407, -1, -1, -1, -1, -1, 413, -1, -1, - -1, -1, 378, -1, -1, -1, -1, -1, -1, -1, - 111, 387, 388, -1, -1, 431, -1, 118, 119, -1, - -1, -1, -1, 439, -1, -1, 442, -1, -1, -1, - -1, 407, 448, 449, 450, -1, -1, 413, 454, -1, - 456, -1, 458, 459, 460, -1, -1, -1, 149, -1, - -1, -1, -1, -1, -1, 431, -1, -1, -1, -1, - 161, -1, -1, 439, 165, -1, 442, -1, -1, -1, - -1, -1, 448, -1, -1, -1, -1, -1, 179, -1, - -1, -1, -1, -1, -1, 186, -1, -1, 189, 190, - -1, -1, -1, -1, -1, -1, 197, -1, -1, -1, - -1, -1, -1, 204, -1, 206, -1, -1, 209, -1, - -1, 6, -1, -1, 9, -1, 3, -1, 5, -1, - -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, - -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 246, -1, -1, -1, 250, - -1, 252, -1, -1, 49, -1, -1, -1, 259, -1, - -1, -1, -1, -1, 51, 52, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, 282, -1, -1, 71, -1, -1, 82, 75, -1, - -1, 86, -1, -1, -1, -1, 297, -1, -1, -1, - 87, -1, -1, 98, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 318, -1, -1, - -1, -1, -1, -1, 111, -1, 327, -1, -1, -1, - -1, 118, 119, -1, -1, -1, -1, -1, -1, 340, - -1, -1, -1, -1, 345, -1, 347, -1, -1, -1, - -1, -1, -1, -1, 355, -1, -1, -1, -1, -1, - -1, -1, 149, -1, 365, -1, -1, -1, -1, -1, - -1, -1, -1, 374, 161, -1, -1, -1, 165, -1, - -1, -1, 383, -1, 385, 386, -1, -1, 389, 184, - 391, -1, 179, -1, -1, 396, -1, -1, -1, 186, - 195, -1, 189, 190, -1, -1, -1, -1, -1, -1, - 197, 412, -1, -1, -1, -1, 417, 204, -1, 206, - -1, 422, 209, -1, -1, -1, -1, -1, -1, -1, - 225, -1, 433, 6, -1, -1, 9, 232, -1, -1, - -1, 236, -1, 238, 445, -1, 241, -1, 243, -1, - -1, -1, -1, -1, 455, -1, -1, 30, -1, 246, - -1, -1, -1, 250, -1, 252, -1, 6, -1, -1, - 9, -1, 259, -1, -1, -1, -1, -1, -1, 274, - -1, -1, -1, -1, 279, -1, -1, -1, -1, 6, - -1, -1, 9, 66, -1, 282, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 315, -1, -1, -1, -1, 98, -1, -1, -1, 6, - 325, 318, 9, -1, -1, -1, -1, -1, -1, -1, - 327, -1, -1, 82, -1, -1, -1, 342, -1, -1, - -1, 6, -1, 340, 9, 94, -1, -1, 345, 98, - 347, -1, -1, -1, -1, 82, -1, -1, 355, -1, - -1, -1, -1, -1, -1, -1, -1, 372, 365, -1, - -1, 98, -1, 378, -1, -1, -1, 374, -1, -1, - -1, -1, 387, 388, -1, 112, 383, -1, 385, 386, - -1, -1, 389, -1, 391, 82, -1, -1, -1, 396, - -1, 184, 407, -1, -1, -1, -1, 94, 413, -1, - -1, 98, 195, 418, -1, 412, -1, 82, -1, -1, - 417, -1, -1, -1, -1, 422, 431, -1, -1, 94, - 435, -1, -1, 98, 439, 184, 433, 442, -1, -1, - -1, -1, 225, 448, -1, -1, 195, -1, 445, 232, - 233, -1, -1, 236, -1, 238, -1, 184, 241, -1, - 243, -1, -1, -1, -1, -1, -1, -1, 195, -1, - -1, -1, -1, -1, -1, -1, 225, -1, -1, -1, - -1, -1, -1, 232, -1, -1, -1, 236, -1, 238, - -1, 274, 241, -1, 243, -1, -1, 184, 225, -1, - -1, -1, -1, -1, -1, 232, -1, -1, 195, 236, - -1, 238, -1, -1, 241, -1, 243, -1, 301, 184, - -1, -1, -1, -1, -1, 274, -1, -1, -1, -1, - 195, -1, 315, -1, -1, -1, -1, -1, 225, -1, - -1, 6, -1, -1, 9, 232, -1, 274, -1, 236, - -1, 238, -1, -1, 241, -1, 243, -1, -1, 342, - 225, -1, -1, -1, -1, -1, 315, 232, -1, -1, - -1, 236, -1, 238, -1, -1, 241, -1, 243, -1, - -1, -1, -1, -1, -1, -1, -1, 274, 315, -1, - -1, 6, -1, 342, 9, 378, -1, -1, -1, -1, - -1, -1, -1, 6, 387, 388, 9, -1, -1, 274, - -1, -1, -1, -1, -1, 342, -1, 82, -1, -1, - -1, -1, -1, -1, 407, -1, -1, -1, 315, 378, - 413, -1, -1, 98, -1, -1, -1, -1, 387, 388, - -1, -1, -1, -1, -1, -1, -1, -1, 431, -1, - 315, 378, -1, -1, -1, 342, 439, -1, 407, 442, - 387, 388, -1, -1, 413, 448, -1, 82, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 342, -1, 82, - 407, -1, 431, 98, -1, -1, 413, -1, -1, -1, - 439, 378, -1, 442, -1, 98, -1, -1, -1, 448, - 387, 388, -1, -1, 431, -1, -1, -1, -1, -1, - -1, -1, 439, 378, 6, 442, -1, 9, -1, 184, - 407, 448, 387, 388, -1, -1, 413, -1, -1, -1, - 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 407, -1, 431, -1, -1, -1, 413, -1, - -1, -1, 439, -1, -1, 442, -1, -1, -1, -1, - 225, 448, -1, -1, -1, 180, 431, 232, -1, 184, - -1, 236, -1, 238, 439, -1, 241, 442, 243, -1, - 195, 184, -1, 448, -1, -1, -1, -1, -1, -1, - 82, -1, 195, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 98, -1, -1, 274, - 225, -1, -1, -1, -1, -1, -1, 232, -1, -1, - -1, 236, 225, 238, -1, -1, 241, -1, 243, 232, - -1, -1, -1, 236, -1, 238, -1, -1, 241, -1, - 243, -1, 6, -1, -1, 9, -1, -1, -1, -1, - 315, -1, -1, -1, -1, -1, -1, -1, -1, 274, + -1, -1, -1, 179, -1, -1, -1, -1, -1, -1, + 186, -1, -1, 189, 190, -1, -1, -1, -1, -1, + -1, 197, -1, -1, -1, -1, -1, -1, 204, -1, + 206, -1, -1, 209, -1, -1, 6, -1, -1, 9, + -1, 3, -1, 5, -1, -1, -1, -1, 10, -1, + -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 274, -1, -1, -1, -1, -1, 342, -1, -1, + 246, -1, -1, -1, 250, -1, 252, -1, -1, 49, + -1, -1, -1, 259, -1, -1, -1, -1, -1, 51, + 52, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, 282, -1, -1, 71, + -1, -1, 82, 75, -1, -1, 86, -1, -1, -1, + -1, 297, -1, -1, -1, 87, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 184, -1, -1, -1, -1, -1, -1, -1, - 315, -1, -1, 195, -1, -1, -1, -1, -1, -1, - -1, 6, 315, 378, 9, -1, -1, -1, 82, -1, - -1, -1, 387, 388, -1, -1, -1, 342, -1, -1, - -1, -1, -1, 225, 98, -1, -1, -1, 403, 342, - 232, -1, 407, -1, 236, -1, 238, -1, 413, 241, - -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 378, -1, -1, 431, -1, -1, 372, - -1, -1, 387, 388, 439, 378, -1, 442, -1, -1, - -1, -1, 274, 448, 387, 388, -1, 82, -1, -1, - -1, -1, 407, -1, -1, -1, -1, -1, 413, -1, - -1, -1, -1, 98, 407, -1, -1, -1, -1, -1, - 413, -1, -1, -1, -1, -1, 431, -1, -1, -1, - 184, -1, -1, 315, 439, -1, -1, 442, 431, -1, - -1, 195, -1, 448, -1, -1, 439, -1, -1, 442, - -1, -1, -1, -1, -1, 448, -1, -1, -1, -1, - 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 225, -1, -1, -1, -1, -1, -1, 232, -1, - -1, -1, 236, -1, 238, -1, -1, 241, -1, 243, - -1, 373, -1, -1, -1, -1, 378, -1, -1, 184, + -1, -1, 318, -1, -1, -1, -1, -1, -1, 111, + -1, 327, -1, -1, -1, -1, 118, 119, -1, -1, + -1, -1, -1, -1, 340, -1, -1, -1, -1, 345, + -1, 347, -1, -1, -1, -1, -1, -1, -1, 355, + -1, -1, -1, -1, -1, -1, -1, 149, -1, 365, + -1, -1, -1, -1, -1, -1, -1, -1, 374, 161, + -1, -1, -1, 165, -1, -1, -1, 383, -1, 385, + 386, -1, -1, 389, 184, 391, -1, 179, -1, -1, + 396, -1, -1, -1, 186, 195, -1, 189, 190, -1, + -1, -1, -1, -1, -1, 197, 412, -1, -1, -1, + -1, 417, 204, -1, 206, -1, 422, 209, -1, -1, + -1, -1, -1, -1, -1, 225, -1, 433, 6, -1, + -1, 9, 232, -1, -1, -1, 236, -1, 238, 445, + -1, 241, -1, 243, -1, -1, -1, -1, -1, 455, + -1, -1, 30, -1, 246, -1, -1, -1, 250, -1, + 252, -1, -1, -1, -1, -1, -1, 259, -1, -1, + -1, -1, -1, -1, 274, -1, -1, -1, 6, 279, + -1, 9, -1, -1, -1, -1, -1, -1, 66, -1, + 282, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 82, 297, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 315, -1, -1, -1, -1, + 98, -1, -1, -1, -1, 325, 318, -1, -1, -1, + -1, -1, -1, -1, -1, 327, -1, -1, -1, -1, + -1, -1, 342, -1, -1, -1, -1, -1, 340, -1, + -1, -1, -1, 345, 82, 347, -1, -1, 6, -1, + -1, 9, -1, 355, -1, -1, -1, -1, -1, -1, + 98, -1, 372, 365, -1, -1, -1, -1, 378, -1, + -1, -1, 374, -1, -1, -1, -1, 387, 388, -1, + -1, 383, -1, 385, 386, -1, -1, 389, -1, 391, + -1, -1, -1, -1, 396, -1, 184, 407, -1, -1, + -1, -1, -1, 413, -1, -1, -1, 195, 418, -1, + 412, 149, -1, -1, -1, 417, -1, -1, -1, -1, + 422, 431, -1, -1, 82, 435, -1, -1, -1, 439, + -1, 433, 442, -1, -1, -1, -1, 225, 448, -1, + 98, -1, -1, 445, 232, 233, 184, -1, 236, -1, + 238, -1, -1, 241, 112, 243, -1, 195, -1, 6, + -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 274, 225, -1, -1, + -1, -1, -1, -1, 232, -1, -1, -1, 236, -1, + 238, -1, -1, 241, -1, 243, -1, -1, -1, -1, + -1, -1, -1, 301, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 184, 315, -1, -1, + -1, -1, -1, -1, -1, 82, 274, 195, -1, 6, + -1, -1, 9, -1, -1, -1, -1, 94, -1, -1, + -1, 98, 210, -1, 342, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 225, -1, -1, + -1, -1, -1, -1, 232, -1, -1, 315, 236, -1, + 238, -1, -1, 241, -1, 243, -1, -1, -1, 6, + 378, -1, 9, -1, -1, -1, -1, -1, -1, 387, + 388, -1, -1, -1, 342, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 82, 274, -1, -1, 407, + -1, -1, -1, -1, -1, 413, -1, 94, -1, -1, + -1, 98, -1, -1, -1, -1, -1, 184, -1, -1, + 378, -1, -1, 431, -1, -1, -1, -1, 195, 387, + 388, 439, -1, -1, 442, -1, -1, 315, -1, -1, + 448, -1, -1, -1, -1, 82, 404, -1, -1, 407, + 408, -1, -1, -1, -1, 413, -1, -1, 225, -1, + -1, 98, -1, -1, 342, 232, -1, -1, -1, 236, + -1, 238, -1, 431, 241, 112, 243, -1, -1, -1, + -1, 439, -1, -1, 442, -1, -1, -1, -1, -1, + 448, -1, -1, -1, -1, -1, -1, 184, 6, -1, + 378, 9, -1, -1, -1, -1, -1, 274, 195, 387, + 388, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 407, + -1, -1, -1, -1, -1, 413, -1, -1, 225, -1, + -1, -1, -1, -1, -1, 232, -1, 184, 315, 236, + -1, 238, -1, 431, 241, -1, 243, -1, 195, -1, + 6, 439, -1, 9, 442, -1, -1, -1, -1, -1, + 448, -1, -1, -1, 82, 342, -1, -1, -1, -1, + -1, -1, 6, -1, -1, 9, 94, 274, 225, -1, + 98, -1, -1, -1, 6, 232, -1, 9, -1, 236, + -1, 238, -1, -1, 241, -1, 243, -1, -1, -1, + -1, 378, -1, -1, -1, -1, -1, -1, -1, -1, + 387, 388, -1, -1, -1, -1, -1, -1, 315, -1, + -1, -1, -1, -1, -1, -1, 82, 274, -1, -1, + 407, -1, -1, -1, -1, -1, 413, -1, -1, -1, + -1, -1, 98, -1, -1, 342, -1, -1, 82, -1, + -1, -1, -1, -1, 431, -1, -1, -1, -1, -1, + 82, -1, 439, -1, 98, 442, 184, -1, 315, -1, + -1, 448, -1, -1, -1, -1, 98, 195, -1, -1, + -1, 378, -1, -1, -1, -1, -1, -1, -1, -1, + 387, 388, -1, -1, -1, 342, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 225, -1, -1, + 407, -1, -1, -1, 232, -1, 413, -1, 236, -1, + 238, -1, -1, 241, -1, 243, -1, -1, 184, -1, + -1, 378, -1, -1, 431, -1, -1, -1, -1, 195, + 387, 388, 439, -1, -1, 442, 180, -1, -1, -1, + 184, 448, -1, -1, -1, -1, 274, -1, -1, -1, + 407, 195, 184, -1, -1, -1, 413, -1, -1, 225, + -1, -1, -1, 195, -1, -1, 232, -1, -1, -1, + 236, -1, 238, -1, 431, 241, -1, 243, -1, -1, + -1, 225, 439, -1, -1, 442, -1, 315, 232, -1, + -1, 448, 236, 225, 238, -1, -1, 241, -1, 243, + 232, -1, 6, -1, 236, 9, 238, -1, 274, 241, + -1, 243, -1, -1, 342, -1, 6, -1, -1, 9, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 274, -1, -1, -1, -1, -1, -1, 315, + 378, -1, -1, -1, -1, -1, -1, -1, -1, 387, + 388, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 315, -1, -1, -1, -1, 342, -1, 82, 407, + -1, -1, -1, 315, -1, 413, -1, -1, -1, -1, + -1, -1, 82, -1, 98, -1, 6, -1, 342, 9, + -1, -1, -1, 431, -1, -1, -1, -1, 98, -1, + 342, 439, 378, -1, 442, -1, -1, -1, -1, -1, + 448, 387, 388, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 378, -1, -1, 403, -1, -1, + 372, 407, -1, 387, 388, -1, 378, 413, -1, -1, -1, -1, -1, -1, -1, 387, 388, -1, -1, -1, - 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 274, -1, -1, -1, -1, 407, -1, -1, -1, -1, - -1, 413, -1, -1, -1, -1, -1, -1, -1, -1, - 225, -1, -1, -1, -1, -1, -1, 232, -1, 431, - -1, 236, -1, 238, -1, -1, 241, 439, 243, -1, - 442, 315, 31, -1, 33, -1, 448, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 342, 274, - -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, - -1, -1, -1, -1, -1, 74, -1, 76, 77, 78, - 79, 80, 81, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 378, -1, -1, -1, -1, -1, - 315, -1, -1, 387, 388, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 118, - -1, -1, -1, 407, -1, -1, -1, 342, -1, 413, + -1, -1, -1, 407, -1, 431, -1, -1, -1, 413, + -1, -1, 82, 439, -1, 407, 442, -1, -1, -1, + 184, 413, 448, -1, -1, -1, -1, 431, 98, -1, + -1, 195, -1, -1, 184, 439, -1, -1, 442, 431, + -1, -1, -1, -1, 448, 195, -1, 439, -1, -1, + 442, -1, -1, -1, -1, -1, 448, -1, -1, -1, + -1, 225, -1, -1, -1, -1, -1, -1, 232, -1, + -1, -1, 236, -1, 238, 225, -1, 241, -1, 243, + -1, -1, 232, -1, -1, -1, 236, -1, 238, -1, + -1, 241, -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 431, -1, -1, - -1, -1, -1, -1, -1, 439, -1, -1, 442, 158, - -1, -1, -1, 378, 448, -1, -1, -1, -1, -1, - -1, -1, 387, 388, -1, -1, -1, 176, -1, -1, - -1, 180, 181, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 407, -1, -1, 194, -1, -1, 413, -1, - -1, -1, 201, -1, -1, -1, -1, -1, -1, 37, - 38, 39, 40, 41, 42, 43, 431, -1, 217, -1, - -1, -1, -1, -1, 439, -1, -1, 442, -1, -1, - -1, -1, -1, 448, 233, -1, -1, -1, 66, 67, - -1, -1, -1, 242, -1, -1, 74, -1, 76, 77, - 78, 79, 80, 81, 253, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, - 39, 40, 41, 42, -1, -1, -1, 276, -1, -1, + 274, -1, -1, -1, 184, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 274, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 118, 290, 291, -1, -1, -1, -1, -1, -1, 298, - -1, 300, -1, -1, -1, 74, -1, 76, 77, 78, - 79, 80, 81, -1, 313, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 82, -1, -1, 338, - -1, -1, -1, -1, 343, -1, -1, -1, -1, 118, - -1, -1, 98, -1, -1, -1, -1, -1, 357, -1, - -1, -1, -1, -1, 192, -1, -1, -1, 367, -1, - 369, 370, 371, 201, -1, -1, 82, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 217, + -1, 315, -1, -1, -1, 225, -1, -1, -1, -1, + -1, -1, 232, -1, -1, 315, 236, -1, 238, -1, + -1, 241, -1, 243, -1, -1, -1, -1, 342, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 274, -1, -1, -1, -1, 373, + -1, -1, -1, -1, 378, -1, -1, -1, -1, -1, + -1, -1, -1, 387, 388, -1, -1, -1, 378, -1, + -1, -1, -1, -1, -1, -1, -1, 387, 388, -1, + -1, -1, -1, 407, -1, 315, -1, -1, -1, 413, + -1, -1, -1, -1, -1, -1, -1, 407, -1, -1, + -1, -1, -1, 413, -1, -1, -1, 431, -1, -1, + -1, -1, 342, -1, -1, 439, -1, -1, 442, -1, + -1, 431, -1, -1, 448, -1, -1, -1, -1, 439, + -1, -1, 442, -1, -1, -1, -1, -1, 448, -1, + -1, -1, -1, -1, -1, -1, 82, -1, 378, -1, + -1, -1, -1, -1, -1, -1, -1, 387, 388, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 403, 233, 234, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 415, -1, -1, -1, - 419, 420, 421, 82, -1, 253, -1, -1, -1, -1, - 258, -1, 201, 432, -1, 434, 435, -1, 184, 98, - -1, -1, -1, -1, -1, -1, -1, -1, 276, 195, - -1, -1, -1, -1, -1, -1, 455, 82, -1, -1, - -1, -1, -1, 291, -1, -1, -1, -1, -1, -1, - 298, -1, 300, 98, -1, 303, -1, -1, 184, 225, - -1, -1, -1, -1, 253, 313, 232, -1, -1, 195, - 236, -1, 238, -1, -1, 241, -1, 243, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 407, -1, 31, + -1, 33, -1, 413, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, 431, 37, 38, 39, 40, 41, 42, 43, 439, + -1, -1, 442, -1, 66, -1, -1, -1, 448, -1, + -1, -1, 74, -1, 76, 77, 78, 79, 80, 81, + -1, 66, 67, -1, -1, -1, -1, -1, -1, 74, + -1, 76, 77, 78, 79, 80, 81, -1, 184, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 195, + -1, -1, -1, -1, -1, -1, 118, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 118, -1, -1, -1, -1, -1, 225, + -1, -1, -1, -1, -1, -1, 232, -1, -1, -1, + 236, -1, 238, -1, -1, 241, 158, 243, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 176, -1, -1, -1, 180, 181, + -1, 82, -1, -1, -1, -1, -1, -1, 274, -1, + -1, -1, 194, -1, -1, -1, -1, 98, -1, 201, + -1, -1, -1, -1, -1, -1, -1, 192, -1, -1, + -1, -1, -1, -1, -1, 217, 201, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 315, + -1, 233, 217, -1, -1, -1, -1, -1, -1, -1, + 242, -1, -1, -1, -1, -1, -1, -1, 233, 234, + -1, 253, -1, -1, -1, -1, 342, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 253, -1, + -1, -1, -1, 258, 276, -1, -1, -1, -1, -1, + -1, -1, -1, 184, -1, -1, -1, -1, 290, 291, + -1, 276, 378, -1, 195, -1, 298, -1, 300, -1, + -1, 387, 388, -1, -1, -1, 291, -1, -1, -1, + -1, 313, 314, 298, -1, 300, -1, -1, 303, -1, + -1, 407, -1, -1, 225, -1, -1, 413, 313, -1, + -1, 232, -1, -1, -1, 236, 338, 238, -1, -1, + 241, 343, 243, -1, -1, 431, -1, -1, -1, -1, + -1, -1, -1, 439, 82, 357, 442, -1, -1, -1, + -1, -1, 448, 449, 450, 367, -1, 369, 370, 371, + 98, 457, 458, 274, -1, -1, -1, -1, -1, -1, + -1, -1, 367, -1, 369, 370, 371, -1, -1, -1, + -1, 376, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 403, -1, -1, -1, 390, -1, -1, -1, -1, + -1, -1, -1, 415, 315, -1, -1, 419, 420, 421, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 414, + 432, -1, 434, 435, 419, 420, 421, -1, -1, -1, + -1, 342, -1, -1, -1, -1, -1, 432, -1, -1, + 435, 436, -1, 455, -1, -1, 184, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 195, -1, -1, + 455, -1, -1, -1, -1, -1, -1, 378, -1, -1, + -1, -1, -1, -1, -1, -1, 387, 388, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 225, -1, -1, + -1, -1, -1, -1, 232, -1, 407, -1, 236, -1, + 238, -1, 413, 241, -1, 243, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 431, -1, -1, -1, -1, -1, -1, -1, 439, -1, + -1, 442, -1, -1, -1, -1, 274, 448, 449, 450, + -1, -1, -1, -1, -1, -1, 457, 458, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 315, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 225, - -1, -1, 291, -1, -1, 184, 232, -1, 274, -1, - 236, 300, 238, -1, -1, 241, 195, 243, -1, 367, - -1, 369, 370, 371, 313, -1, -1, -1, 376, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 184, - -1, -1, 390, -1, -1, -1, 225, -1, 274, 315, - 195, -1, -1, 232, -1, -1, -1, 236, -1, 238, - -1, -1, 241, -1, 243, -1, 414, -1, -1, -1, - -1, 419, 420, 421, -1, -1, 342, -1, -1, -1, - 369, 370, 371, -1, 432, -1, -1, 435, 436, 315, - -1, 236, -1, 238, -1, 274, 241, -1, 243, -1, - -1, -1, -1, -1, -1, -1, -1, 455, -1, -1, - -1, -1, 378, -1, -1, -1, 342, -1, -1, -1, - -1, 387, 388, -1, -1, -1, -1, -1, -1, 274, - 419, 420, 421, -1, -1, -1, 315, -1, -1, -1, - -1, 407, -1, -1, -1, -1, -1, 413, -1, -1, - -1, -1, 378, -1, -1, -1, -1, -1, -1, -1, - -1, 387, 388, 342, -1, 431, -1, -1, -1, -1, - 315, -1, -1, 439, -1, -1, 442, -1, -1, -1, - -1, 407, 448, 449, 450, -1, -1, 413, -1, -1, - -1, 457, 458, -1, -1, -1, -1, 342, -1, 378, - -1, -1, -1, -1, -1, 431, -1, -1, 387, 388, - -1, -1, -1, 439, -1, -1, 442, -1, -1, -1, - -1, -1, 448, 449, 450, -1, -1, -1, 407, -1, - -1, 457, 458, 378, 413, -1, -1, -1, -1, -1, - -1, -1, 387, 388, -1, -1, -1, -1, -1, -1, - -1, -1, 431, -1, -1, -1, -1, -1, -1, -1, - 439, -1, 407, 442, -1, -1, -1, -1, 413, 448, - 449, 450, -1, -1, -1, -1, -1, -1, -1, 458, - -1, -1, -1, -1, -1, -1, 431, -1, -1, -1, - -1, -1, -1, -1, 439, -1, -1, 442, -1, -1, - -1, -1, -1, 448 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 378, -1, -1, -1, -1, -1, -1, -1, -1, 387, + 388, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 407, + -1, -1, -1, -1, -1, 413, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 431, -1, -1, -1, -1, -1, -1, + -1, 439, -1, -1, 442, -1, -1, -1, -1, -1, + 448, 449, 450, -1, -1, -1, -1, -1, -1, -1, + 458 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -4350,126 +4400,126 @@ static const yytype_int16 yystos[] = 954, 1079, 1080, 1091, 957, 1078, 973, 972, 112, 977, 978, 1094, 94, 983, 1093, 693, 1103, 1078, 1103, 8, 35, 1009, 107, 1075, 17, 1086, 118, 236, 556, 1153, - 441, 570, 570, 376, 456, 564, 1086, 1088, 1148, 172, - 691, 692, 691, 1149, 702, 188, 730, 1108, 402, 1171, - 225, 449, 450, 458, 1069, 1071, 1072, 1095, 1103, 1110, - 1112, 458, 1107, 1105, 236, 1140, 1104, 1104, 1111, 1173, - 1109, 1089, 1089, 1137, 1141, 127, 771, 30, 180, 765, - 1137, 1156, 458, 1103, 458, 1113, 458, 1114, 1156, 1128, - 458, 458, 458, 458, 458, 458, 458, 458, 1113, 128, - 776, 403, 775, 1094, 205, 1122, 56, 1062, 1063, 403, - 1128, 434, 786, 236, 1100, 1103, 1078, 130, 808, 156, - 456, 809, 1074, 348, 1126, 319, 1161, 1077, 132, 823, - 765, 427, 428, 429, 430, 133, 827, 49, 210, 786, - 17, 438, 834, 835, 836, 840, 1133, 100, 1156, 1092, - 1081, 399, 1170, 865, 1174, 1103, 92, 331, 394, 877, - 878, 879, 883, 888, 959, 1094, 403, 137, 899, 49, - 166, 207, 215, 288, 903, 912, 138, 909, 423, 436, - 400, 402, 397, 258, 304, 1123, 180, 1020, 1161, 1020, - 1076, 143, 943, 436, 937, 1098, 1103, 1110, 952, 954, - 1091, 403, 1080, 121, 403, 424, 950, 967, 187, 341, - 974, 1139, 210, 978, 1103, 146, 984, 180, 180, 319, - 321, 993, 112, 996, 333, 380, 1010, 1157, 1020, 529, - 122, 441, 564, 1121, 1130, 557, 1105, 240, 347, 1148, - 561, 562, 1100, 693, 700, 1108, 635, 703, 731, 114, - 656, 1156, 1071, 1071, 1071, 70, 360, 457, 1070, 449, - 450, 451, 452, 454, 461, 1071, 365, 1163, 1152, 1089, - 114, 609, 1098, 25, 26, 67, 69, 103, 104, 105, - 150, 152, 160, 234, 401, 442, 1080, 441, 768, 66, - 233, 301, 766, 767, 149, 310, 1096, 1104, 1069, 1071, - 403, 1071, 1069, 1115, 1104, 1110, 1112, 442, 1071, 1118, - 1071, 1071, 1117, 1071, 1069, 1069, 1071, 1116, 1071, 1073, - 1094, 187, 341, 780, 1122, 12, 13, 14, 20, 58, - 156, 157, 185, 191, 214, 222, 226, 256, 257, 262, - 272, 279, 284, 302, 448, 449, 450, 451, 452, 454, - 456, 457, 459, 460, 1064, 1065, 1066, 1067, 1068, 12, - 13, 14, 58, 214, 256, 257, 262, 272, 279, 302, - 449, 450, 454, 458, 1064, 1065, 1066, 1067, 1068, 1094, - 309, 783, 1084, 787, 187, 341, 791, 324, 416, 803, - 804, 1174, 1059, 213, 266, 1051, 1052, 1053, 1055, 426, - 441, 820, 1174, 163, 1026, 1027, 1026, 1026, 1026, 1094, - 1073, 1094, 21, 404, 408, 841, 842, 1060, 134, 844, - 440, 836, 838, 438, 837, 833, 1104, 114, 854, 1082, - 859, 9, 12, 15, 16, 253, 254, 272, 273, 866, - 870, 171, 1098, 9, 56, 173, 223, 411, 884, 885, - 886, 880, 878, 961, 1130, 1157, 403, 1091, 1073, 1094, - 366, 904, 757, 758, 1058, 914, 915, 1103, 1082, 8, - 35, 1022, 1161, 1100, 210, 918, 930, 1174, 938, 1137, - 1103, 938, 403, 403, 520, 149, 404, 408, 1094, 49, - 218, 968, 1094, 1094, 372, 1094, 1103, 180, 1073, 1094, - 1098, 1139, 210, 999, 1103, 159, 163, 1011, 9, 1016, - 1082, 930, 122, 561, 1105, 280, 563, 1086, 563, 193, - 695, 233, 234, 701, 638, 31, 33, 36, 44, 45, - 46, 66, 158, 176, 180, 181, 194, 233, 242, 276, - 290, 314, 338, 343, 357, 403, 415, 434, 455, 649, - 650, 652, 666, 669, 671, 732, 735, 1157, 28, 115, - 202, 653, 658, 659, 660, 661, 663, 1104, 1110, 1112, - 457, 1071, 1071, 1071, 1071, 1071, 1071, 457, 1071, 1172, - 1152, 1157, 1025, 1027, 447, 446, 1098, 1025, 218, 31, - 33, 36, 46, 176, 181, 194, 242, 290, 314, 338, - 343, 353, 357, 415, 425, 769, 770, 1025, 270, 1155, - 1155, 1155, 767, 766, 236, 1097, 1104, 457, 1103, 461, - 457, 1070, 457, 457, 1070, 457, 457, 457, 457, 1070, - 457, 457, 373, 1031, 1032, 1073, 1092, 341, 1172, 398, - 1169, 1169, 403, 1082, 788, 789, 790, 1139, 1103, 1103, - 163, 289, 792, 1012, 1145, 240, 260, 1031, 1054, 1056, - 131, 814, 1055, 96, 305, 442, 1080, 33, 36, 44, - 45, 46, 158, 176, 194, 242, 290, 343, 353, 415, - 821, 822, 1026, 269, 1028, 265, 1029, 187, 1031, 187, - 1133, 400, 843, 839, 841, 757, 1157, 757, 1172, 331, - 867, 1172, 403, 49, 885, 887, 1098, 9, 56, 223, - 411, 881, 882, 1098, 962, 1131, 200, 285, 1158, 661, - 1091, 1031, 187, 1174, 1077, 138, 910, 759, 8, 180, - 918, 1103, 126, 263, 1041, 1042, 1044, 1051, 240, 260, - 438, 126, 438, 940, 941, 1098, 1097, 1094, 1148, 1051, - 979, 1174, 1103, 1031, 187, 403, 9, 997, 998, 1120, - 1000, 1103, 979, 1000, 307, 1014, 308, 1021, 1022, 1121, - 251, 319, 321, 571, 1148, 173, 696, 1108, 704, 1148, - 1155, 153, 155, 1148, 1101, 1155, 1108, 1103, 1103, 1086, - 1139, 662, 663, 659, 1150, 657, 658, 457, 404, 676, - 1086, 1029, 1025, 1148, 1148, 121, 424, 770, 1100, 1100, - 1100, 1113, 1126, 457, 1071, 1086, 1113, 1113, 1071, 1113, - 1113, 1113, 223, 411, 1113, 1113, 1033, 268, 1034, 1031, - 1092, 156, 284, 156, 284, 789, 279, 745, 86, 325, - 435, 265, 267, 794, 1013, 793, 329, 344, 757, 757, - 820, 820, 820, 820, 1148, 153, 155, 1148, 121, 424, - 822, 757, 1030, 1073, 1074, 1073, 1074, 842, 1059, 757, - 1103, 125, 860, 435, 868, 869, 870, 110, 871, 435, - 1099, 1103, 1109, 1098, 49, 889, 882, 175, 889, 958, - 1148, 285, 1150, 1073, 580, 905, 1174, 760, 915, 1094, - 199, 919, 1174, 1043, 1045, 141, 927, 1044, 142, 931, - 240, 1059, 939, 1058, 940, 262, 969, 1124, 144, 970, - 289, 1036, 1037, 300, 1126, 1073, 1099, 284, 1098, 113, - 1001, 394, 1003, 1157, 154, 264, 1023, 1046, 1047, 1049, - 1052, 7, 1132, 571, 1108, 116, 220, 697, 67, 66, - 67, 192, 233, 234, 258, 303, 376, 390, 414, 436, - 455, 649, 650, 652, 654, 666, 669, 671, 705, 706, - 708, 709, 710, 711, 713, 714, 715, 716, 720, 721, - 448, 1102, 1103, 1108, 1148, 1102, 1148, 1171, 442, 664, - 665, 1148, 1148, 1102, 1102, 1057, 1139, 1057, 1031, 457, - 757, 1035, 1172, 156, 1172, 156, 1094, 129, 796, 795, - 757, 1026, 1026, 1026, 1026, 1102, 1102, 1057, 1057, 757, - 1031, 328, 1031, 328, 861, 136, 862, 869, 102, 1143, - 889, 889, 1099, 1022, 207, 434, 963, 1086, 1148, 1031, - 240, 260, 49, 240, 218, 920, 198, 240, 260, 437, - 757, 757, 936, 757, 942, 693, 1064, 1065, 1066, 1067, - 1068, 1038, 145, 980, 267, 1039, 1103, 1031, 1031, 998, - 1147, 95, 1002, 1147, 1036, 166, 207, 215, 288, 1008, - 1077, 1048, 1050, 148, 1024, 1049, 293, 1080, 1102, 1148, - 91, 221, 698, 271, 1155, 203, 722, 270, 271, 719, - 1134, 192, 438, 1148, 1156, 1148, 1103, 711, 258, 299, - 717, 718, 1108, 247, 299, 449, 450, 734, 247, 299, - 449, 450, 733, 665, 1085, 1109, 1102, 757, 1172, 1172, - 757, 1074, 1074, 757, 49, 889, 406, 890, 307, 1077, - 187, 288, 964, 960, 344, 1094, 1148, 921, 1041, 1052, - 240, 240, 757, 757, 757, 1040, 1103, 1147, 1103, 147, - 1004, 757, 757, 233, 234, 1151, 1108, 1148, 1148, 174, - 699, 1148, 1149, 1148, 1058, 1103, 712, 1086, 90, 91, - 116, 294, 295, 335, 336, 707, 180, 293, 1108, 718, - 1102, 1102, 1151, 1031, 1031, 1094, 1094, 1148, 1077, 307, - 1105, 423, 693, 140, 922, 757, 1103, 1108, 1108, 1148, - 1108, 1108, 1126, 1094, 911, 1148, 1058, 1108, 49, 911, - 1094 + 441, 570, 570, 122, 376, 441, 456, 564, 1121, 1130, + 1086, 1088, 1148, 172, 691, 692, 691, 1149, 702, 188, + 730, 1108, 402, 1171, 225, 449, 450, 458, 1069, 1071, + 1072, 1095, 1103, 1110, 1112, 458, 1107, 1105, 236, 1140, + 1104, 1104, 1111, 1173, 1109, 1089, 1089, 1137, 1141, 127, + 771, 30, 180, 765, 1137, 1156, 458, 1103, 458, 1113, + 458, 1114, 1156, 1128, 458, 458, 458, 458, 458, 458, + 458, 458, 1113, 128, 776, 403, 775, 1094, 205, 1122, + 56, 1062, 1063, 403, 1128, 434, 786, 236, 1100, 1103, + 1078, 130, 808, 156, 456, 809, 1074, 348, 1126, 319, + 1161, 1077, 132, 823, 765, 427, 428, 429, 430, 133, + 827, 49, 210, 786, 17, 438, 834, 835, 836, 840, + 1133, 100, 1156, 1092, 1081, 399, 1170, 865, 1174, 1103, + 92, 331, 394, 877, 878, 879, 883, 888, 959, 1094, + 403, 137, 899, 49, 166, 207, 215, 288, 903, 912, + 138, 909, 423, 436, 400, 402, 397, 258, 304, 1123, + 180, 1020, 1161, 1020, 1076, 143, 943, 436, 937, 1098, + 1103, 1110, 952, 954, 1091, 403, 1080, 121, 403, 424, + 950, 967, 187, 341, 974, 1139, 210, 978, 1103, 146, + 984, 180, 180, 319, 321, 993, 112, 996, 333, 380, + 1010, 1157, 1020, 529, 564, 1121, 557, 1105, 240, 347, + 1148, 122, 561, 562, 1100, 693, 700, 1108, 635, 703, + 731, 114, 656, 1156, 1071, 1071, 1071, 70, 360, 457, + 1070, 449, 450, 451, 452, 454, 461, 1071, 365, 1163, + 1152, 1089, 114, 609, 1098, 25, 26, 67, 69, 103, + 104, 105, 150, 152, 160, 234, 401, 442, 1080, 441, + 768, 66, 233, 301, 766, 767, 149, 310, 1096, 1104, + 1069, 1071, 403, 1071, 1069, 1115, 1104, 1110, 1112, 442, + 1071, 1118, 1071, 1071, 1117, 1071, 1069, 1069, 1071, 1116, + 1071, 1073, 1094, 187, 341, 780, 1122, 12, 13, 14, + 20, 58, 156, 157, 185, 191, 214, 222, 226, 256, + 257, 262, 272, 279, 284, 302, 448, 449, 450, 451, + 452, 454, 456, 457, 459, 460, 1064, 1065, 1066, 1067, + 1068, 12, 13, 14, 58, 214, 256, 257, 262, 272, + 279, 302, 449, 450, 454, 458, 1064, 1065, 1066, 1067, + 1068, 1094, 309, 783, 1084, 787, 187, 341, 791, 324, + 416, 803, 804, 1174, 1059, 213, 266, 1051, 1052, 1053, + 1055, 426, 441, 820, 1174, 163, 1026, 1027, 1026, 1026, + 1026, 1094, 1073, 1094, 21, 404, 408, 841, 842, 1060, + 134, 844, 440, 836, 838, 438, 837, 833, 1104, 114, + 854, 1082, 859, 9, 12, 15, 16, 253, 254, 272, + 273, 866, 870, 171, 1098, 9, 56, 173, 223, 411, + 884, 885, 886, 880, 878, 961, 1130, 1157, 403, 1091, + 1073, 1094, 366, 904, 757, 758, 1058, 914, 915, 1103, + 1082, 8, 35, 1022, 1161, 1100, 210, 918, 930, 1174, + 938, 1137, 1103, 938, 403, 403, 520, 149, 404, 408, + 1094, 49, 218, 968, 1094, 1094, 372, 1094, 1103, 180, + 1073, 1094, 1098, 1139, 210, 999, 1103, 159, 163, 1011, + 9, 1016, 1082, 930, 561, 1105, 280, 563, 1086, 1121, + 563, 193, 695, 233, 234, 701, 638, 31, 33, 36, + 44, 45, 46, 66, 158, 176, 180, 181, 194, 233, + 242, 276, 290, 314, 338, 343, 357, 403, 415, 434, + 455, 649, 650, 652, 666, 669, 671, 732, 735, 1157, + 28, 115, 202, 653, 658, 659, 660, 661, 663, 1104, + 1110, 1112, 457, 1071, 1071, 1071, 1071, 1071, 1071, 457, + 1071, 1172, 1152, 1157, 1025, 1027, 447, 446, 1098, 1025, + 218, 31, 33, 36, 46, 176, 181, 194, 242, 290, + 314, 338, 343, 353, 357, 415, 425, 769, 770, 1025, + 270, 1155, 1155, 1155, 767, 766, 236, 1097, 1104, 457, + 1103, 461, 457, 1070, 457, 457, 1070, 457, 457, 457, + 457, 1070, 457, 457, 373, 1031, 1032, 1073, 1092, 341, + 1172, 398, 1169, 1169, 403, 1082, 788, 789, 790, 1139, + 1103, 1103, 163, 289, 792, 1012, 1145, 240, 260, 1031, + 1054, 1056, 131, 814, 1055, 96, 305, 442, 1080, 33, + 36, 44, 45, 46, 158, 176, 194, 242, 290, 343, + 353, 415, 821, 822, 1026, 269, 1028, 265, 1029, 187, + 1031, 187, 1133, 400, 843, 839, 841, 757, 1157, 757, + 1172, 331, 867, 1172, 403, 49, 885, 887, 1098, 9, + 56, 223, 411, 881, 882, 1098, 962, 1131, 200, 285, + 1158, 661, 1091, 1031, 187, 1174, 1077, 138, 910, 759, + 8, 180, 918, 1103, 126, 263, 1041, 1042, 1044, 1051, + 240, 260, 438, 126, 438, 940, 941, 1098, 1097, 1094, + 1148, 1051, 979, 1174, 1103, 1031, 187, 403, 9, 997, + 998, 1120, 1000, 1103, 979, 1000, 307, 1014, 308, 1021, + 1022, 1121, 251, 319, 321, 571, 1148, 173, 696, 1108, + 704, 1148, 1155, 153, 155, 1148, 1101, 1155, 1108, 1103, + 1103, 1086, 1139, 662, 663, 659, 1150, 657, 658, 457, + 404, 676, 1086, 1029, 1025, 1148, 1148, 121, 424, 770, + 1100, 1100, 1100, 1113, 1126, 457, 1071, 1086, 1113, 1113, + 1071, 1113, 1113, 1113, 223, 411, 1113, 1113, 1033, 268, + 1034, 1031, 1092, 156, 284, 156, 284, 789, 279, 745, + 86, 325, 435, 265, 267, 794, 1013, 793, 329, 344, + 757, 757, 820, 820, 820, 820, 1148, 153, 155, 1148, + 121, 424, 822, 757, 1030, 1073, 1074, 1073, 1074, 842, + 1059, 757, 1103, 125, 860, 435, 868, 869, 870, 110, + 871, 435, 1099, 1103, 1109, 1098, 49, 889, 882, 175, + 889, 958, 1148, 285, 1150, 1073, 580, 905, 1174, 760, + 915, 1094, 199, 919, 1174, 1043, 1045, 141, 927, 1044, + 142, 931, 240, 1059, 939, 1058, 940, 262, 969, 1124, + 144, 970, 289, 1036, 1037, 300, 1126, 1073, 1099, 284, + 1098, 113, 1001, 394, 1003, 1157, 154, 264, 1023, 1046, + 1047, 1049, 1052, 7, 1132, 571, 1108, 116, 220, 697, + 67, 66, 67, 192, 233, 234, 258, 303, 376, 390, + 414, 436, 455, 649, 650, 652, 654, 666, 669, 671, + 705, 706, 708, 709, 710, 711, 713, 714, 715, 716, + 720, 721, 448, 1102, 1103, 1108, 1148, 1102, 1148, 1171, + 442, 664, 665, 1148, 1148, 1102, 1102, 1057, 1139, 1057, + 1031, 457, 757, 1035, 1172, 156, 1172, 156, 1094, 129, + 796, 795, 757, 1026, 1026, 1026, 1026, 1102, 1102, 1057, + 1057, 757, 1031, 328, 1031, 328, 861, 136, 862, 869, + 102, 1143, 889, 889, 1099, 1022, 207, 434, 963, 1086, + 1148, 1031, 240, 260, 49, 240, 218, 920, 198, 240, + 260, 437, 757, 757, 936, 757, 942, 693, 1064, 1065, + 1066, 1067, 1068, 1038, 145, 980, 267, 1039, 1103, 1031, + 1031, 998, 1147, 95, 1002, 1147, 1036, 166, 207, 215, + 288, 1008, 1077, 1048, 1050, 148, 1024, 1049, 293, 1080, + 1102, 1148, 91, 221, 698, 271, 1155, 203, 722, 270, + 271, 719, 1134, 192, 438, 1148, 1156, 1148, 1103, 711, + 258, 299, 717, 718, 1108, 247, 299, 449, 450, 734, + 247, 299, 449, 450, 733, 665, 1085, 1109, 1102, 757, + 1172, 1172, 757, 1074, 1074, 757, 49, 889, 406, 890, + 307, 1077, 187, 288, 964, 960, 344, 1094, 1148, 921, + 1041, 1052, 240, 240, 757, 757, 757, 1040, 1103, 1147, + 1103, 147, 1004, 757, 757, 233, 234, 1151, 1108, 1148, + 1148, 174, 699, 1148, 1149, 1148, 1058, 1103, 712, 1086, + 90, 91, 116, 294, 295, 335, 336, 707, 180, 293, + 1108, 718, 1102, 1102, 1151, 1031, 1031, 1094, 1094, 1148, + 1077, 307, 1105, 423, 693, 140, 922, 757, 1103, 1108, + 1108, 1148, 1108, 1108, 1126, 1094, 911, 1148, 1058, 1108, + 49, 911, 1094 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -4663,7 +4713,7 @@ static const yytype_int8 yyr2[] = 4, 1, 1, 1, 6, 8, 0, 2, 2, 1, 0, 2, 1, 3, 5, 0, 1, 1, 4, 2, 2, 1, 0, 4, 5, 2, 1, 1, 3, 1, - 1, 3, 1, 1, 2, 4, 4, 4, 6, 4, + 1, 3, 1, 1, 2, 4, 4, 5, 7, 4, 3, 2, 3, 2, 2, 2, 4, 0, 3, 0, 2, 1, 1, 1, 2, 1, 1, 5, 0, 1, 1, 1, 5, 1, 2, 2, 0, 2, 2, 1, @@ -5286,7 +5336,7 @@ yyparse (void) cb_build_registers (); current_program->flag_main = cb_flag_main; } -#line 5290 "parser.c" +#line 5340 "parser.c" break; case 3: /* start: $@1 nested_list "end of file" */ @@ -5308,19 +5358,19 @@ yyparse (void) emit_entry (current_program->program_id, 0, NULL); } } -#line 5312 "parser.c" +#line 5362 "parser.c" break; case 8: /* $@2: %empty */ #line 827 "parser.y" { cb_validate_program_environment (current_program); } -#line 5318 "parser.c" +#line 5368 "parser.c" break; case 9: /* $@3: %empty */ #line 828 "parser.y" { cb_validate_program_data (current_program); } -#line 5324 "parser.c" +#line 5374 "parser.c" break; case 10: /* program_definition: identification_division environment_division $@2 data_division $@3 procedure_division nested_prog end_program */ @@ -5331,19 +5381,19 @@ yyparse (void) cb_validate_indexed_file_key(CB_FILE(CB_VALUE(file))); } } -#line 5335 "parser.c" +#line 5385 "parser.c" break; case 11: /* $@4: %empty */ #line 841 "parser.y" { cb_validate_program_environment (current_program); } -#line 5341 "parser.c" +#line 5391 "parser.c" break; case 12: /* $@5: %empty */ #line 842 "parser.y" { cb_validate_program_data (current_program); } -#line 5347 "parser.c" +#line 5397 "parser.c" break; case 13: /* program_mandatory: identification_division environment_division $@4 data_division $@5 procedure_division nested_prog end_mandatory */ @@ -5354,19 +5404,19 @@ yyparse (void) cb_validate_indexed_file_key(CB_FILE(CB_VALUE(file))); } } -#line 5358 "parser.c" +#line 5408 "parser.c" break; case 14: /* $@6: %empty */ #line 855 "parser.y" { cb_validate_program_environment (current_program); } -#line 5364 "parser.c" +#line 5414 "parser.c" break; case 15: /* $@7: %empty */ #line 856 "parser.y" { cb_validate_program_data (current_program); } -#line 5370 "parser.c" +#line 5420 "parser.c" break; case 21: /* end_program: "END PROGRAM" program_name '.' */ @@ -5395,7 +5445,7 @@ yyparse (void) cb_validate_program_body (current_program); } } -#line 5399 "parser.c" +#line 5449 "parser.c" break; case 22: /* end_mandatory: "END PROGRAM" program_name '.' */ @@ -5422,7 +5472,7 @@ yyparse (void) cb_validate_program_body (current_program); } } -#line 5426 "parser.c" +#line 5476 "parser.c" break; case 23: /* end_function: "END FUNCTION" program_name '.' */ @@ -5449,7 +5499,7 @@ yyparse (void) cb_validate_program_body (current_program); } } -#line 5453 "parser.c" +#line 5503 "parser.c" break; case 24: /* $@8: %empty */ @@ -5493,7 +5543,7 @@ yyparse (void) depth++; current_program->program_id = cb_build_program_id (yyvsp[-1], yyvsp[0]); } -#line 5497 "parser.c" +#line 5547 "parser.c" break; case 26: /* function_division: "FUNCTION-ID" '.' program_name as_literal '.' */ @@ -5538,19 +5588,19 @@ yyparse (void) current_program->flag_recursive = 1; current_program->flag_initial = 1; } -#line 5542 "parser.c" +#line 5592 "parser.c" break; case 29: /* as_literal: %empty */ #line 1045 "parser.y" { yyval = NULL; } -#line 5548 "parser.c" +#line 5598 "parser.c" break; case 30: /* as_literal: AS "Literal" */ #line 1046 "parser.y" { yyval = yyvsp[0]; } -#line 5554 "parser.c" +#line 5604 "parser.c" break; case 33: /* program_type_clause: COMMON */ @@ -5561,7 +5611,7 @@ yyparse (void) } current_program->flag_common = 1; } -#line 5565 "parser.c" +#line 5615 "parser.c" break; case 34: /* program_type_clause: COMMON _init_or_recurs */ @@ -5572,7 +5622,7 @@ yyparse (void) } current_program->flag_common = 1; } -#line 5576 "parser.c" +#line 5626 "parser.c" break; case 36: /* _init_or_recurs: "INITIAL" */ @@ -5580,7 +5630,7 @@ yyparse (void) { current_program->flag_initial = 1; } -#line 5584 "parser.c" +#line 5634 "parser.c" break; case 37: /* _init_or_recurs: RECURSIVE */ @@ -5589,7 +5639,7 @@ yyparse (void) current_program->flag_recursive = 1; current_program->flag_initial = 1; } -#line 5593 "parser.c" +#line 5643 "parser.c" break; case 41: /* configuration_section: CONFIGURATION SECTION '.' configuration_list */ @@ -5599,7 +5649,7 @@ yyparse (void) cb_error (_("CONFIGURATION SECTION not allowed in nested programs")); } } -#line 5603 "parser.c" +#line 5653 "parser.c" break; case 53: /* with_debugging_mode: _with DEBUGGING MODE */ @@ -5607,13 +5657,13 @@ yyparse (void) { cb_verify (cb_debugging_line, "DEBUGGING MODE"); } -#line 5611 "parser.c" +#line 5661 "parser.c" break; case 54: /* computer_name: "Identifier" */ #line 1143 "parser.y" { } -#line 5617 "parser.c" +#line 5667 "parser.c" break; case 65: /* object_computer_memory: MEMORY SIZE _is integer object_char_or_word */ @@ -5621,7 +5671,7 @@ yyparse (void) { cb_verify (cb_memory_size_clause, "MEMORY SIZE"); } -#line 5625 "parser.c" +#line 5675 "parser.c" break; case 68: /* object_computer_sequence: _program coll_sequence _is reference */ @@ -5629,7 +5679,7 @@ yyparse (void) { current_program->collating_sequence = yyvsp[0]; } -#line 5633 "parser.c" +#line 5683 "parser.c" break; case 69: /* object_computer_segment: "SEGMENT-LIMIT" _is integer */ @@ -5637,7 +5687,7 @@ yyparse (void) { /* Ignore */ } -#line 5641 "parser.c" +#line 5691 "parser.c" break; case 75: /* repository_name: FUNCTION repository_literal_list INTRINSIC */ @@ -5645,7 +5695,7 @@ yyparse (void) { current_program->function_spec_list = yyvsp[-1]; } -#line 5649 "parser.c" +#line 5699 "parser.c" break; case 76: /* repository_name: FUNCTION ALL INTRINSIC */ @@ -5653,19 +5703,19 @@ yyparse (void) { functions_are_all = 1; } -#line 5657 "parser.c" +#line 5707 "parser.c" break; case 77: /* repository_literal_list: "Literal" */ #line 1228 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 5663 "parser.c" +#line 5713 "parser.c" break; case 78: /* repository_literal_list: repository_literal_list "Literal" */ #line 1230 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 5669 "parser.c" +#line 5719 "parser.c" break; case 96: /* mnemonic_name_clause: "Identifier" _is CRT */ @@ -5679,7 +5729,7 @@ yyparse (void) } /* current_program->flag_screen = 1; */ } -#line 5683 "parser.c" +#line 5733 "parser.c" break; case 97: /* $@9: %empty */ @@ -5693,7 +5743,7 @@ yyparse (void) } save_tree_2 = yyvsp[0]; } -#line 5697 "parser.c" +#line 5747 "parser.c" break; case 99: /* $@10: %empty */ @@ -5705,7 +5755,7 @@ yyparse (void) } save_tree_2 = NULL; } -#line 5709 "parser.c" +#line 5759 "parser.c" break; case 101: /* mnemonic_name_clause: "ARGUMENT-NUMBER" _is undefined_word */ @@ -5723,7 +5773,7 @@ yyparse (void) cb_error (_("SPECIAL-NAMES with ARGUMENT-NUMBER clause is not yet supported")); } } -#line 5727 "parser.c" +#line 5777 "parser.c" break; case 102: /* mnemonic_name_clause: "ARGUMENT-VALUE" _is undefined_word */ @@ -5741,7 +5791,7 @@ yyparse (void) cb_error (_("SPECIAL-NAMES with ARGUMENT-VALUE clause is not yet supported")); } } -#line 5745 "parser.c" +#line 5795 "parser.c" break; case 103: /* mnemonic_name_clause: "ENVIRONMENT-NAME" _is undefined_word */ @@ -5759,7 +5809,7 @@ yyparse (void) cb_error (_("SPECIAL-NAMES with ENVIRONMENT-NAME clause is not yet supported")); } } -#line 5763 "parser.c" +#line 5813 "parser.c" break; case 104: /* mnemonic_name_clause: "ENVIRONMENT-VALUE" _is undefined_word */ @@ -5777,7 +5827,7 @@ yyparse (void) cb_error (_("SPECIAL-NAMES with ENVIRONMENT-VALUE clause is not yet supported")); } } -#line 5781 "parser.c" +#line 5831 "parser.c" break; case 109: /* special_name_mnemonic_on_off: on_or_off _status _is undefined_word */ @@ -5789,19 +5839,19 @@ yyparse (void) cb_define_switch_name (yyvsp[0], save_tree_1, yyvsp[-3], save_tree_2); } } -#line 5793 "parser.c" +#line 5843 "parser.c" break; case 110: /* on_or_off: ON */ #line 1379 "parser.y" { yyval = cb_int1; } -#line 5799 "parser.c" +#line 5849 "parser.c" break; case 111: /* on_or_off: OFF */ #line 1380 "parser.y" { yyval = cb_int0; } -#line 5805 "parser.c" +#line 5855 "parser.c" break; case 112: /* $@11: %empty */ @@ -5809,7 +5859,7 @@ yyparse (void) { save_tree_1 = yyvsp[0]; } -#line 5813 "parser.c" +#line 5863 "parser.c" break; case 113: /* alphabet_name_clause: ALPHABET undefined_word $@11 _is alphabet_definition */ @@ -5818,31 +5868,31 @@ yyparse (void) current_program->alphabet_name_list = cb_list_add (current_program->alphabet_name_list, yyvsp[0]); } -#line 5822 "parser.c" +#line 5872 "parser.c" break; case 114: /* alphabet_definition: NATIVE */ #line 1399 "parser.y" { yyval = cb_build_alphabet_name (save_tree_1, CB_ALPHABET_NATIVE); } -#line 5828 "parser.c" +#line 5878 "parser.c" break; case 115: /* alphabet_definition: "STANDARD-1" */ #line 1400 "parser.y" { yyval = cb_build_alphabet_name (save_tree_1, CB_ALPHABET_STANDARD_1); } -#line 5834 "parser.c" +#line 5884 "parser.c" break; case 116: /* alphabet_definition: "STANDARD-2" */ #line 1401 "parser.y" { yyval = cb_build_alphabet_name (save_tree_1, CB_ALPHABET_STANDARD_2); } -#line 5840 "parser.c" +#line 5890 "parser.c" break; case 117: /* alphabet_definition: EBCDIC */ #line 1402 "parser.y" { yyval = cb_build_alphabet_name (save_tree_1, CB_ALPHABET_EBCDIC); } -#line 5846 "parser.c" +#line 5896 "parser.c" break; case 118: /* alphabet_definition: alphabet_literal_list */ @@ -5851,31 +5901,31 @@ yyparse (void) yyval = cb_build_alphabet_name (save_tree_1, CB_ALPHABET_CUSTOM); CB_ALPHABET_NAME (yyval)->custom_list = yyvsp[0]; } -#line 5855 "parser.c" +#line 5905 "parser.c" break; case 119: /* alphabet_literal_list: alphabet_literal */ #line 1411 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 5861 "parser.c" +#line 5911 "parser.c" break; case 120: /* alphabet_literal_list: alphabet_literal_list alphabet_literal */ #line 1413 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 5867 "parser.c" +#line 5917 "parser.c" break; case 121: /* alphabet_literal: alphabet_lits */ #line 1417 "parser.y" { yyval = yyvsp[0]; } -#line 5873 "parser.c" +#line 5923 "parser.c" break; case 122: /* alphabet_literal: alphabet_lits THRU alphabet_lits */ #line 1418 "parser.y" { yyval = cb_build_pair (yyvsp[-2], yyvsp[0]); } -#line 5879 "parser.c" +#line 5929 "parser.c" break; case 123: /* @12: %empty */ @@ -5884,7 +5934,7 @@ yyparse (void) yyval = cb_list_init (yyvsp[-1]); save_tree_2 = yyval; } -#line 5888 "parser.c" +#line 5938 "parser.c" break; case 124: /* alphabet_literal: alphabet_lits ALSO @12 alphabet_also_sequence */ @@ -5892,79 +5942,79 @@ yyparse (void) { yyval = yyvsp[-1]; } -#line 5896 "parser.c" +#line 5946 "parser.c" break; case 127: /* alphabet_lits: "Literal" */ #line 1436 "parser.y" { yyval = yyvsp[0]; } -#line 5902 "parser.c" +#line 5952 "parser.c" break; case 128: /* alphabet_lits: SPACE */ #line 1437 "parser.y" { yyval = cb_space; } -#line 5908 "parser.c" +#line 5958 "parser.c" break; case 129: /* alphabet_lits: ZERO */ #line 1438 "parser.y" { yyval = cb_zero; } -#line 5914 "parser.c" +#line 5964 "parser.c" break; case 130: /* alphabet_lits: QUOTE */ #line 1439 "parser.y" { yyval = cb_quote; } -#line 5920 "parser.c" +#line 5970 "parser.c" break; case 131: /* alphabet_lits: "HIGH-VALUE" */ #line 1440 "parser.y" { yyval = cb_norm_high; } -#line 5926 "parser.c" +#line 5976 "parser.c" break; case 132: /* alphabet_lits: "LOW-VALUE" */ #line 1441 "parser.y" { yyval = cb_norm_low; } -#line 5932 "parser.c" +#line 5982 "parser.c" break; case 133: /* alphabet_also_literal: "Literal" */ #line 1445 "parser.y" { cb_list_add (save_tree_2, yyvsp[0]); } -#line 5938 "parser.c" +#line 5988 "parser.c" break; case 134: /* alphabet_also_literal: SPACE */ #line 1446 "parser.y" { cb_list_add (save_tree_2, cb_space); } -#line 5944 "parser.c" +#line 5994 "parser.c" break; case 135: /* alphabet_also_literal: ZERO */ #line 1447 "parser.y" { cb_list_add (save_tree_2, cb_zero); } -#line 5950 "parser.c" +#line 6000 "parser.c" break; case 136: /* alphabet_also_literal: QUOTE */ #line 1448 "parser.y" { cb_list_add (save_tree_2, cb_quote); } -#line 5956 "parser.c" +#line 6006 "parser.c" break; case 137: /* alphabet_also_literal: "HIGH-VALUE" */ #line 1449 "parser.y" { cb_list_add (save_tree_2, cb_norm_high); } -#line 5962 "parser.c" +#line 6012 "parser.c" break; case 138: /* alphabet_also_literal: "LOW-VALUE" */ #line 1450 "parser.y" { cb_list_add (save_tree_2, cb_norm_low); } -#line 5968 "parser.c" +#line 6018 "parser.c" break; case 139: /* symbolic_characters_clause: SYMBOLIC _characters symbolic_characters_list */ @@ -5976,7 +6026,7 @@ yyparse (void) } PENDING ("SYMBOLIC CHARACTERS"); } -#line 5980 "parser.c" +#line 6030 "parser.c" break; case 140: /* symbolic_characters_list: char_list _is_are integer_list */ @@ -5989,31 +6039,31 @@ yyparse (void) yyval = NULL; } } -#line 5993 "parser.c" +#line 6043 "parser.c" break; case 141: /* char_list: undefined_word */ #line 1480 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 5999 "parser.c" +#line 6049 "parser.c" break; case 142: /* char_list: char_list undefined_word */ #line 1481 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 6005 "parser.c" +#line 6055 "parser.c" break; case 143: /* integer_list: integer */ #line 1485 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 6011 "parser.c" +#line 6061 "parser.c" break; case 144: /* integer_list: integer_list integer */ #line 1486 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 6017 "parser.c" +#line 6067 "parser.c" break; case 145: /* class_name_clause: CLASS undefined_word _is class_item_list */ @@ -6023,25 +6073,25 @@ yyparse (void) cb_list_add (current_program->class_name_list, cb_build_class_name (yyvsp[-2], yyvsp[0])); } -#line 6027 "parser.c" +#line 6077 "parser.c" break; case 146: /* class_item_list: class_item */ #line 1502 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 6033 "parser.c" +#line 6083 "parser.c" break; case 147: /* class_item_list: class_item_list class_item */ #line 1503 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 6039 "parser.c" +#line 6089 "parser.c" break; case 148: /* class_item: basic_value */ #line 1507 "parser.y" { yyval = yyvsp[0]; } -#line 6045 "parser.c" +#line 6095 "parser.c" break; case 149: /* class_item: basic_value THRU basic_value */ @@ -6054,7 +6104,7 @@ yyparse (void) yyval = cb_build_pair (yyvsp[0], yyvsp[-2]); } } -#line 6058 "parser.c" +#line 6108 "parser.c" break; case 150: /* locale_clause: LOCALE undefined_word _is reference */ @@ -6068,7 +6118,7 @@ yyparse (void) cb_list_add (current_program->locale_list, l); } } -#line 6072 "parser.c" +#line 6122 "parser.c" break; case 151: /* currency_sign_clause: CURRENCY _sign _is "Literal" */ @@ -6133,7 +6183,7 @@ yyparse (void) } current_program->currency_symbol = s[0]; } -#line 6137 "parser.c" +#line 6187 "parser.c" break; case 152: /* decimal_point_clause: "DECIMAL-POINT" _is COMMA */ @@ -6142,31 +6192,31 @@ yyparse (void) current_program->decimal_point = ','; current_program->numeric_separator = '.'; } -#line 6146 "parser.c" +#line 6196 "parser.c" break; case 153: /* cursor_clause: CURSOR _is reference */ #line 1615 "parser.y" { current_program->cursor_pos = yyvsp[0]; } -#line 6152 "parser.c" +#line 6202 "parser.c" break; case 154: /* crt_status_clause: CRT STATUS _is reference */ #line 1622 "parser.y" { current_program->crt_status = yyvsp[0]; } -#line 6158 "parser.c" +#line 6208 "parser.c" break; case 155: /* screen_control: "SCREEN-CONTROL" _is reference */ #line 1629 "parser.y" { PENDING ("SCREEN CONTROL"); } -#line 6164 "parser.c" +#line 6214 "parser.c" break; case 156: /* event_status: "EVENT-STATUS" _is reference */ #line 1635 "parser.y" { PENDING ("EVENT STATUS"); } -#line 6170 "parser.c" +#line 6220 "parser.c" break; case 159: /* $@13: %empty */ @@ -6179,7 +6229,7 @@ yyparse (void) cb_error (_("INPUT-OUTPUT SECTION header missing")); } } -#line 6183 "parser.c" +#line 6233 "parser.c" break; case 161: /* $@14: %empty */ @@ -6192,7 +6242,7 @@ yyparse (void) cb_error (_("INPUT-OUTPUT SECTION header missing")); } } -#line 6196 "parser.c" +#line 6246 "parser.c" break; case 167: /* $@15: %empty */ @@ -6211,7 +6261,7 @@ yyparse (void) current_program->file_list = cb_cons (CB_TREE (current_file), current_program->file_list); } -#line 6215 "parser.c" +#line 6265 "parser.c" break; case 168: /* file_control_entry: SELECT flag_optional undefined_word $@15 select_clause_sequence '.' */ @@ -6219,7 +6269,7 @@ yyparse (void) { validate_file (current_file, yyvsp[-3]); } -#line 6223 "parser.c" +#line 6273 "parser.c" break; case 186: /* assign_clause: ASSIGN _to _ext_clause _device assignment_name */ @@ -6227,7 +6277,7 @@ yyparse (void) { current_file->assign = cb_build_assignment_name (current_file, yyvsp[0]); } -#line 6231 "parser.c" +#line 6281 "parser.c" break; case 187: /* assign_clause: ASSIGN _to _ext_clause DISK */ @@ -6236,7 +6286,7 @@ yyparse (void) current_file->fileid_assign = 1; current_file->assign = cb_build_assignment_name (current_file, cb_build_reference ("DISK")); } -#line 6240 "parser.c" +#line 6290 "parser.c" break; case 188: /* assign_clause: ASSIGN _to _ext_clause PRINTER */ @@ -6245,13 +6295,13 @@ yyparse (void) current_file->fileid_assign = 1; current_file->assign = cb_build_assignment_name (current_file, cb_build_reference ("PRINTER")); } -#line 6249 "parser.c" +#line 6299 "parser.c" break; case 191: /* _device: PRINTER */ #line 1745 "parser.y" { current_file->organization = COB_ORG_LINE_SEQUENTIAL; } -#line 6255 "parser.c" +#line 6305 "parser.c" break; case 193: /* _ext_clause: EXTERNAL */ @@ -6259,7 +6309,7 @@ yyparse (void) { current_file->external_assign = 1; } -#line 6263 "parser.c" +#line 6313 "parser.c" break; case 194: /* _ext_clause: DYNAMIC */ @@ -6267,7 +6317,7 @@ yyparse (void) { current_file->external_assign = 0; } -#line 6271 "parser.c" +#line 6321 "parser.c" break; case 196: /* assignment_name: DISPLAY */ @@ -6278,7 +6328,7 @@ yyparse (void) s = "$#@DUMMY@#$"; yyval = cb_build_alphanumeric_literal ((unsigned char *)s, strlen (s)); } -#line 6282 "parser.c" +#line 6332 "parser.c" break; case 197: /* assignment_name: _literal assignment_device_name_list */ @@ -6299,37 +6349,37 @@ yyparse (void) yyval = yyvsp[-1]; } } -#line 6303 "parser.c" +#line 6353 "parser.c" break; case 198: /* assignment_device_name_list: qualified_word */ #line 1788 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 6309 "parser.c" +#line 6359 "parser.c" break; case 199: /* assignment_device_name_list: assignment_device_name_list qualified_word */ #line 1789 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 6315 "parser.c" +#line 6365 "parser.c" break; case 201: /* access_mode: SEQUENTIAL */ #line 1799 "parser.y" { current_file->access_mode = COB_ACCESS_SEQUENTIAL; } -#line 6321 "parser.c" +#line 6371 "parser.c" break; case 202: /* access_mode: DYNAMIC */ #line 1800 "parser.y" { current_file->access_mode = COB_ACCESS_DYNAMIC; } -#line 6327 "parser.c" +#line 6377 "parser.c" break; case 203: /* access_mode: RANDOM */ #line 1801 "parser.y" { current_file->access_mode = COB_ACCESS_RANDOM; } -#line 6333 "parser.c" +#line 6383 "parser.c" break; case 204: /* alternative_record_key_clause: ALTERNATE RECORD _key _is reference flag_duplicates */ @@ -6353,7 +6403,7 @@ yyparse (void) l->next = p; } } -#line 6357 "parser.c" +#line 6407 "parser.c" break; case 205: /* alternative_record_key_clause: ALTERNATE RECORD _key _is reference key_is_eq split_key_list flag_duplicates */ @@ -6397,7 +6447,7 @@ yyparse (void) } } } -#line 6401 "parser.c" +#line 6451 "parser.c" break; case 206: /* $@16: %empty */ @@ -6405,7 +6455,7 @@ yyparse (void) { key_component_list = NULL; } -#line 6409 "parser.c" +#line 6459 "parser.c" break; case 209: /* split_key: reference */ @@ -6422,25 +6472,25 @@ yyparse (void) c->next = comp; } } -#line 6426 "parser.c" +#line 6476 "parser.c" break; case 210: /* key_is_eq: %empty */ #line 1895 "parser.y" { yyval = NULL; } -#line 6432 "parser.c" +#line 6482 "parser.c" break; case 211: /* key_is_eq: SOURCE _is */ #line 1896 "parser.y" { yyval = cb_int1; } -#line 6438 "parser.c" +#line 6488 "parser.c" break; case 212: /* key_is_eq: '=' */ #line 1897 "parser.y" { yyval = cb_int('='); } -#line 6444 "parser.c" +#line 6494 "parser.c" break; case 213: /* collating_sequence_clause: coll_sequence _is "Identifier" */ @@ -6448,7 +6498,7 @@ yyparse (void) { PENDING ("COLLATING SEQUENCE"); } -#line 6452 "parser.c" +#line 6502 "parser.c" break; case 214: /* file_status_clause: file_or_sort STATUS _is reference opt_reference */ @@ -6459,25 +6509,25 @@ yyparse (void) PENDING ("2nd FILE STATUS"); } } -#line 6463 "parser.c" +#line 6513 "parser.c" break; case 219: /* lock_mode: MANUAL lock_with */ #line 1935 "parser.y" { current_file->lock_mode = COB_LOCK_MANUAL; } -#line 6469 "parser.c" +#line 6519 "parser.c" break; case 220: /* lock_mode: AUTOMATIC lock_with */ #line 1936 "parser.y" { current_file->lock_mode = COB_LOCK_AUTOMATIC; } -#line 6475 "parser.c" +#line 6525 "parser.c" break; case 221: /* lock_mode: EXCLUSIVE */ #line 1937 "parser.y" { current_file->lock_mode = COB_LOCK_EXCLUSIVE; } -#line 6481 "parser.c" +#line 6531 "parser.c" break; case 224: /* lock_with: WITH LOCK ON MULTIPLE lock_records */ @@ -6485,13 +6535,13 @@ yyparse (void) { current_file->lock_mode |= COB_LOCK_MULTIPLE; } -#line 6489 "parser.c" +#line 6539 "parser.c" break; case 225: /* lock_with: WITH ROLLBACK */ #line 1946 "parser.y" { PENDING ("WITH ROLLBACK"); } -#line 6495 "parser.c" +#line 6545 "parser.c" break; case 230: /* organization: INDEXED */ @@ -6504,7 +6554,7 @@ yyparse (void) organized_seen = 1; } } -#line 6508 "parser.c" +#line 6558 "parser.c" break; case 231: /* organization: RECORD _binary SEQUENTIAL */ @@ -6517,7 +6567,7 @@ yyparse (void) organized_seen = 1; } } -#line 6521 "parser.c" +#line 6571 "parser.c" break; case 232: /* organization: SEQUENTIAL */ @@ -6530,7 +6580,7 @@ yyparse (void) organized_seen = 1; } } -#line 6534 "parser.c" +#line 6584 "parser.c" break; case 233: /* organization: RELATIVE */ @@ -6543,7 +6593,7 @@ yyparse (void) organized_seen = 1; } } -#line 6547 "parser.c" +#line 6597 "parser.c" break; case 234: /* organization: LINE SEQUENTIAL */ @@ -6556,7 +6606,7 @@ yyparse (void) organized_seen = 1; } } -#line 6560 "parser.c" +#line 6610 "parser.c" break; case 235: /* padding_character_clause: PADDING _character _is reference_or_literal */ @@ -6564,42 +6614,51 @@ yyparse (void) { cb_verify (cb_padding_character_clause, "PADDING CHARACTER"); } -#line 6568 "parser.c" +#line 6618 "parser.c" break; case 236: /* record_delimiter_clause: RECORD DELIMITER _is "STANDARD-1" */ #line 2023 "parser.y" { /* ignored */ } -#line 6574 "parser.c" +#line 6624 "parser.c" break; - case 237: /* record_key_clause: RECORD _key _is reference */ + case 237: /* record_key_clause: RECORD _key _is reference flag_duplicates */ #line 2031 "parser.y" { - current_file->key = yyvsp[0]; + + if(yyvsp[0] == cb_int1) { + cb_error (_("Record keys with duplicates are not yet supported")); + } + + current_file->key = yyvsp[-1]; } -#line 6582 "parser.c" +#line 6637 "parser.c" break; - case 238: /* record_key_clause: RECORD _key _is reference key_is_eq split_key_list */ -#line 2035 "parser.y" + case 238: /* record_key_clause: RECORD _key _is reference key_is_eq split_key_list flag_duplicates */ +#line 2040 "parser.y" { /* SPLIT KEY use */ cb_tree composite_key; struct cb_key_component *comp; + if(yyvsp[0] == cb_int1) { + cb_error (_("Record keys with duplicates are not yet supported")); + } + /* generate field (in w-s) for composite-key */ - if (!yyvsp[-1]) { + if (!yyvsp[-2]) { /* dialect */ composite_key = cb_build_field (cb_build_anonymous ()); comp = cobc_malloc (sizeof (struct cb_key_component)); comp->next = key_component_list; - comp->component = yyvsp[-2]; + comp->component = yyvsp[-3]; key_component_list = comp; } else { /* standard or mf syntax */ - composite_key = cb_build_field (yyvsp[-2]); + composite_key = cb_build_field (yyvsp[-3]); } if (composite_key == cb_error_node) { YYERROR; @@ -6610,59 +6669,59 @@ yyparse (void) current_file->component_list = key_component_list; } } -#line 6614 "parser.c" +#line 6673 "parser.c" break; case 239: /* relative_key_clause: RELATIVE _key _is reference */ -#line 2068 "parser.y" +#line 2077 "parser.y" { current_file->key = yyvsp[0]; } -#line 6620 "parser.c" +#line 6679 "parser.c" break; case 240: /* reserve_clause: RESERVE integer _area */ -#line 2075 "parser.y" +#line 2084 "parser.y" { /* ignored */ } -#line 6626 "parser.c" +#line 6685 "parser.c" break; case 241: /* reserve_clause: RESERVE NO */ -#line 2076 "parser.y" +#line 2085 "parser.y" { /* ignored */ } -#line 6632 "parser.c" +#line 6691 "parser.c" break; case 242: /* sharing_clause: SHARING _with sharing_option */ -#line 2083 "parser.y" +#line 2092 "parser.y" { current_file->sharing = yyvsp[0]; } -#line 6638 "parser.c" +#line 6697 "parser.c" break; case 243: /* sharing_option: ALL _other */ -#line 2087 "parser.y" +#line 2096 "parser.y" { yyval = NULL; PENDING ("SHARING ALL OTHER"); } -#line 6644 "parser.c" +#line 6703 "parser.c" break; case 244: /* sharing_option: NO _other */ -#line 2088 "parser.y" +#line 2097 "parser.y" { yyval = cb_int1; } -#line 6650 "parser.c" +#line 6709 "parser.c" break; case 245: /* sharing_option: READ ONLY */ -#line 2089 "parser.y" +#line 2098 "parser.y" { yyval = cb_int0; } -#line 6656 "parser.c" +#line 6715 "parser.c" break; case 246: /* nominal_key_clause: NOMINAL _key _is reference */ -#line 2095 "parser.y" +#line 2104 "parser.y" { PENDING ("NOMINAL KEY"); } -#line 6662 "parser.c" +#line 6721 "parser.c" break; case 257: /* same_clause: SAME same_option _area _for file_name_list */ -#line 2126 "parser.y" +#line 2135 "parser.y" { cb_tree l; @@ -6684,95 +6743,95 @@ yyparse (void) break; } } -#line 6688 "parser.c" +#line 6747 "parser.c" break; case 258: /* same_option: %empty */ -#line 2150 "parser.y" +#line 2159 "parser.y" { yyval = cb_int0; } -#line 6694 "parser.c" +#line 6753 "parser.c" break; case 259: /* same_option: RECORD */ -#line 2151 "parser.y" +#line 2160 "parser.y" { yyval = cb_int1; } -#line 6700 "parser.c" +#line 6759 "parser.c" break; case 260: /* same_option: SORT */ -#line 2152 "parser.y" +#line 2161 "parser.y" { yyval = cb_int2; } -#line 6706 "parser.c" +#line 6765 "parser.c" break; case 261: /* same_option: "SORT-MERGE" */ -#line 2153 "parser.y" +#line 2162 "parser.y" { yyval = cb_int2; } -#line 6712 "parser.c" +#line 6771 "parser.c" break; case 262: /* multiple_file_tape_clause: MULTIPLE _file _tape _contains multiple_file_list */ -#line 2160 "parser.y" +#line 2169 "parser.y" { cb_verify (cb_multiple_file_tape_clause, "MULTIPLE FILE TAPE"); } -#line 6720 "parser.c" +#line 6779 "parser.c" break; case 265: /* multiple_file: file_name multiple_file_position */ -#line 2171 "parser.y" +#line 2180 "parser.y" { } -#line 6726 "parser.c" +#line 6785 "parser.c" break; case 271: /* apply_clause: APPLY "COMMITMENT-CONTROL" _on reference_list */ -#line 2188 "parser.y" +#line 2197 "parser.y" { PENDING ("APPLY COMMITMENT-CONTROL"); } -#line 6734 "parser.c" +#line 6793 "parser.c" break; case 272: /* apply_clause: APPLY "CYL-OVERFLOW" _of "Literal" TRACKS ON reference_list */ -#line 2192 "parser.y" +#line 2201 "parser.y" { PENDING ("APPLY CYL-OVERFLOW"); } -#line 6742 "parser.c" +#line 6801 "parser.c" break; case 273: /* apply_clause: APPLY "CORE-INDEX" TO reference ON reference_list */ -#line 2196 "parser.y" +#line 2205 "parser.y" { PENDING ("APPLY CORE-INDEX"); } -#line 6750 "parser.c" +#line 6809 "parser.c" break; case 274: /* apply_clause: APPLY "FORMS-OVERLAY" TO reference ON reference_list */ -#line 2200 "parser.y" +#line 2209 "parser.y" { PENDING ("APPLY FORMS-OVERLAY"); } -#line 6758 "parser.c" +#line 6817 "parser.c" break; case 275: /* apply_clause: APPLY "CLOSE-NOFEED" ON reference_list */ -#line 2204 "parser.y" +#line 2213 "parser.y" { PENDING ("APPLY CLOSE-NOFEED"); } -#line 6766 "parser.c" +#line 6825 "parser.c" break; case 279: /* $@17: %empty */ -#line 2229 "parser.y" +#line 2238 "parser.y" { current_storage = CB_STORAGE_FILE; } -#line 6772 "parser.c" +#line 6831 "parser.c" break; case 281: /* $@18: %empty */ -#line 2232 "parser.y" +#line 2241 "parser.y" { /* hack for MF compatibility */ if (cb_relaxed_syntax_check) { @@ -6782,11 +6841,11 @@ yyparse (void) } current_storage = CB_STORAGE_FILE; } -#line 6786 "parser.c" +#line 6845 "parser.c" break; case 285: /* file_description: file_type file_description_entry record_description_list */ -#line 2251 "parser.y" +#line 2260 "parser.y" { if (yyvsp[0] && yyvsp[0] != cb_error_node) { finalize_file (current_file, CB_FIELD (yyvsp[0])); @@ -6794,11 +6853,11 @@ yyparse (void) cb_error (_("RECORD description missing or invalid")); } } -#line 6798 "parser.c" +#line 6857 "parser.c" break; case 286: /* file_description_sequence_without_type: file_description_entry record_description_list */ -#line 2263 "parser.y" +#line 2272 "parser.y" { if (yyvsp[0] && yyvsp[0] != cb_error_node) { finalize_file (current_file, CB_FIELD (yyvsp[0])); @@ -6806,23 +6865,23 @@ yyparse (void) cb_error (_("RECORD description missing or invalid")); } } -#line 6810 "parser.c" +#line 6869 "parser.c" break; case 288: /* file_type: FD */ -#line 2274 "parser.y" +#line 2283 "parser.y" { yyval = cb_int0; } -#line 6816 "parser.c" +#line 6875 "parser.c" break; case 289: /* file_type: SD */ -#line 2275 "parser.y" +#line 2284 "parser.y" { yyval = cb_int1; } -#line 6822 "parser.c" +#line 6881 "parser.c" break; case 290: /* @19: %empty */ -#line 2285 "parser.y" +#line 2294 "parser.y" { if (yyvsp[0] == cb_error_node) { YYERROR; @@ -6833,48 +6892,48 @@ yyparse (void) current_file->organization = COB_ORG_SORT; } } -#line 6837 "parser.c" +#line 6896 "parser.c" break; case 291: /* file_description_entry: file_name @19 file_description_clause_sequence '.' */ -#line 2296 "parser.y" +#line 2305 "parser.y" { /* Shut up bison */ dummy_tree = yyvsp[-2]; } -#line 6846 "parser.c" +#line 6905 "parser.c" break; case 294: /* file_description_clause: _is EXTERNAL */ -#line 2308 "parser.y" +#line 2317 "parser.y" { if (current_file->global) { cb_error (_("File cannot have both EXTERNAL and GLOBAL clauses")); } current_file->external = 1; } -#line 6857 "parser.c" +#line 6916 "parser.c" break; case 295: /* file_description_clause: _is GLOBAL */ -#line 2315 "parser.y" +#line 2324 "parser.y" { if (current_file->external) { cb_error (_("File cannot have both EXTERNAL and GLOBAL clauses")); } current_file->global = 1; } -#line 6868 "parser.c" +#line 6927 "parser.c" break; case 306: /* block_contains_clause: BLOCK _contains integer opt_to_integer _records_or_characters */ -#line 2338 "parser.y" +#line 2347 "parser.y" { /* ignored */ } -#line 6874 "parser.c" +#line 6933 "parser.c" break; case 310: /* record_clause: RECORD _contains integer _characters */ -#line 2348 "parser.y" +#line 2357 "parser.y" { if (current_file->organization == COB_ORG_LINE_SEQUENTIAL) { cb_warning (_("RECORD clause ignored for LINE SEQUENTIAL")); @@ -6886,11 +6945,11 @@ yyparse (void) } } } -#line 6890 "parser.c" +#line 6949 "parser.c" break; case 311: /* record_clause: RECORD _contains integer TO integer _characters */ -#line 2360 "parser.y" +#line 2369 "parser.y" { int error_ind = 0; @@ -6915,11 +6974,11 @@ yyparse (void) } } } -#line 6919 "parser.c" +#line 6978 "parser.c" break; case 312: /* record_clause: RECORD _is VARYING _in _size opt_from_integer opt_to_integer _characters record_depending */ -#line 2386 "parser.y" +#line 2395 "parser.y" { int error_ind = 0; @@ -6940,77 +6999,77 @@ yyparse (void) cb_error (_("RECORD clause invalid")); } } -#line 6944 "parser.c" +#line 7003 "parser.c" break; case 314: /* record_depending: DEPENDING _on reference */ -#line 2410 "parser.y" +#line 2419 "parser.y" { current_file->record_depending = yyvsp[0]; } -#line 6952 "parser.c" +#line 7011 "parser.c" break; case 315: /* opt_from_integer: %empty */ -#line 2416 "parser.y" +#line 2425 "parser.y" { yyval = NULL; } -#line 6958 "parser.c" +#line 7017 "parser.c" break; case 316: /* opt_from_integer: _from integer */ -#line 2417 "parser.y" +#line 2426 "parser.y" { yyval = yyvsp[0]; } -#line 6964 "parser.c" +#line 7023 "parser.c" break; case 317: /* opt_to_integer: %empty */ -#line 2421 "parser.y" +#line 2430 "parser.y" { yyval = NULL; } -#line 6970 "parser.c" +#line 7029 "parser.c" break; case 318: /* opt_to_integer: TO integer */ -#line 2422 "parser.y" +#line 2431 "parser.y" { yyval = yyvsp[0]; } -#line 6976 "parser.c" +#line 7035 "parser.c" break; case 319: /* label_records_clause: LABEL records label_option */ -#line 2430 "parser.y" +#line 2439 "parser.y" { cb_verify (cb_label_records_clause, "LABEL RECORDS"); } -#line 6984 "parser.c" +#line 7043 "parser.c" break; case 322: /* value_of_clause: VALUE OF "Identifier" _is valueof_name */ -#line 2445 "parser.y" +#line 2454 "parser.y" { cb_verify (cb_value_of_clause, "VALUE OF"); } -#line 6992 "parser.c" +#line 7051 "parser.c" break; case 323: /* value_of_clause: VALUE OF "FILE-ID" _is valueof_name */ -#line 2449 "parser.y" +#line 2458 "parser.y" { if (!current_file->assign) { current_file->assign = cb_build_assignment_name (current_file, yyvsp[0]); } } -#line 7002 "parser.c" +#line 7061 "parser.c" break; case 326: /* data_records_clause: DATA records no_reference_list */ -#line 2465 "parser.y" +#line 2474 "parser.y" { cb_verify (cb_data_records_clause, "DATA RECORDS"); } -#line 7010 "parser.c" +#line 7069 "parser.c" break; case 327: /* linage_clause: LINAGE _is reference_or_literal _lines linage_sequence */ -#line 2476 "parser.y" +#line 2485 "parser.y" { if (current_file->organization != COB_ORG_LINE_SEQUENTIAL && current_file->organization != COB_ORG_SEQUENTIAL) { @@ -7025,41 +7084,41 @@ yyparse (void) current_linage++; } } -#line 7029 "parser.c" +#line 7088 "parser.c" break; case 333: /* linage_footing: _with FOOTING _at reference_or_literal _lines */ -#line 2504 "parser.y" +#line 2513 "parser.y" { current_file->latfoot = yyvsp[-1]; } -#line 7037 "parser.c" +#line 7096 "parser.c" break; case 334: /* linage_top: _at TOP reference_or_literal _lines */ -#line 2511 "parser.y" +#line 2520 "parser.y" { current_file->lattop = yyvsp[-1]; } -#line 7045 "parser.c" +#line 7104 "parser.c" break; case 335: /* linage_bottom: _at BOTTOM reference_or_literal */ -#line 2518 "parser.y" +#line 2527 "parser.y" { current_file->latbot = yyvsp[0]; } -#line 7053 "parser.c" +#line 7112 "parser.c" break; case 336: /* recording_mode_clause: RECORDING _mode _is "Identifier" */ -#line 2527 "parser.y" +#line 2536 "parser.y" { /* ignore */ } -#line 7059 "parser.c" +#line 7118 "parser.c" break; case 337: /* code_set_clause: "CODE-SET" _is "Identifier" */ -#line 2535 "parser.y" +#line 2544 "parser.y" { if (yyvsp[0] != cb_error_node) { cb_tree x; @@ -7072,66 +7131,66 @@ yyparse (void) } } } -#line 7076 "parser.c" +#line 7135 "parser.c" break; case 338: /* report_clause: REPORT _is report_name */ -#line 2553 "parser.y" +#line 2562 "parser.y" { cb_warning (_("file descriptor REPORT IS")); } -#line 7084 "parser.c" +#line 7143 "parser.c" break; case 339: /* report_clause: REPORTS _are report_name */ -#line 2557 "parser.y" +#line 2566 "parser.y" { cb_warning (_("file descriptor REPORTS ARE")); } -#line 7092 "parser.c" +#line 7151 "parser.c" break; case 341: /* $@20: %empty */ -#line 2568 "parser.y" +#line 2577 "parser.y" { current_storage = CB_STORAGE_WORKING; } -#line 7098 "parser.c" +#line 7157 "parser.c" break; case 342: /* working_storage_section: "WORKING-STORAGE" SECTION '.' $@20 record_description_list */ -#line 2570 "parser.y" +#line 2579 "parser.y" { if (yyvsp[0]) { current_program->working_storage = cb_field_add (current_program->working_storage, CB_FIELD (yyvsp[0])); } } -#line 7109 "parser.c" +#line 7168 "parser.c" break; case 343: /* record_description_list: %empty */ -#line 2579 "parser.y" +#line 2588 "parser.y" { yyval = NULL; } -#line 7115 "parser.c" +#line 7174 "parser.c" break; case 344: /* record_description_list: record_description_list_1 */ -#line 2580 "parser.y" +#line 2589 "parser.y" { yyval = yyvsp[0]; } -#line 7121 "parser.c" +#line 7180 "parser.c" break; case 345: /* $@21: %empty */ -#line 2584 "parser.y" +#line 2593 "parser.y" { current_field = NULL; description_field = NULL; cb_clear_real_field (); } -#line 7131 "parser.c" +#line 7190 "parser.c" break; case 346: /* record_description_list_1: $@21 record_description_list_2 */ -#line 2590 "parser.y" +#line 2599 "parser.y" { struct cb_field *p; @@ -7140,11 +7199,11 @@ yyparse (void) } yyval = CB_TREE (description_field); } -#line 7144 "parser.c" +#line 7203 "parser.c" break; case 351: /* $@22: %empty */ -#line 2610 "parser.y" +#line 2619 "parser.y" { cb_tree x; @@ -7156,11 +7215,11 @@ yyparse (void) current_field = CB_FIELD (x); } } -#line 7160 "parser.c" +#line 7219 "parser.c" break; case 352: /* data_description: level_number entry_name $@22 data_description_clause_sequence _maybe_next_level_number */ -#line 2622 "parser.y" +#line 2631 "parser.y" { if (!qualifier && (current_field->level == 66 || current_field->flag_item_78)) { cb_error (_("Item requires a data name")); @@ -7173,11 +7232,11 @@ yyparse (void) description_field = current_field; } } -#line 7177 "parser.c" +#line 7236 "parser.c" break; case 353: /* $@23: %empty */ -#line 2635 "parser.y" +#line 2644 "parser.y" { cb_tree x; @@ -7189,11 +7248,11 @@ yyparse (void) current_field = CB_FIELD (x); } } -#line 7193 "parser.c" +#line 7252 "parser.c" break; case 354: /* data_description: level_number_88 entry_name $@23 value_cond_clause */ -#line 2647 "parser.y" +#line 2656 "parser.y" { if (!qualifier) { cb_error (_("Item requires a data name")); @@ -7204,11 +7263,11 @@ yyparse (void) } } -#line 7208 "parser.c" +#line 7267 "parser.c" break; case 358: /* _maybe_next_level_number: "Literal" */ -#line 2674 "parser.y" +#line 2683 "parser.y" { if (CB_TREE_CLASS (yyvsp[0]) == CB_CLASS_NUMERIC) { cb_tree x = cb_build_reference ((char *)CB_LITERAL(yyvsp[0])->data); @@ -7226,78 +7285,78 @@ yyparse (void) cb_unget_token (LITERAL, yyvsp[0]); } } -#line 7230 "parser.c" +#line 7289 "parser.c" break; case 359: /* entry_name: %empty */ -#line 2695 "parser.y" +#line 2704 "parser.y" { yyval = cb_build_filler (); qualifier = NULL; non_const_word = 0; } -#line 7240 "parser.c" +#line 7299 "parser.c" break; case 360: /* entry_name: FILLER */ -#line 2701 "parser.y" +#line 2710 "parser.y" { yyval = cb_build_filler (); qualifier = NULL; non_const_word = 0; } -#line 7250 "parser.c" +#line 7309 "parser.c" break; case 361: /* entry_name: "Identifier" */ -#line 2707 "parser.y" +#line 2716 "parser.y" { yyval = yyvsp[0]; qualifier = yyvsp[0]; non_const_word = 0; } -#line 7260 "parser.c" +#line 7319 "parser.c" break; case 362: /* const_name: "Identifier" */ -#line 2716 "parser.y" +#line 2725 "parser.y" { yyval = yyvsp[0]; qualifier = yyvsp[0]; non_const_word = 0; } -#line 7270 "parser.c" +#line 7329 "parser.c" break; case 364: /* const_global: _is GLOBAL */ -#line 2725 "parser.y" +#line 2734 "parser.y" { current_field->flag_is_global = 1; cb_error (_("CONSTANT with GLOBAL clause is not yet supported")); } -#line 7279 "parser.c" +#line 7338 "parser.c" break; case 365: /* lit_or_length: literal */ -#line 2732 "parser.y" +#line 2741 "parser.y" { yyval = yyvsp[0]; } -#line 7285 "parser.c" +#line 7344 "parser.c" break; case 366: /* lit_or_length: LENGTH _of identifier_1 */ -#line 2733 "parser.y" +#line 2742 "parser.y" { yyval = cb_build_const_length (yyvsp[0]); } -#line 7291 "parser.c" +#line 7350 "parser.c" break; case 367: /* lit_or_length: "BYTE-LENGTH" _of identifier_1 */ -#line 2734 "parser.y" +#line 2743 "parser.y" { yyval = cb_build_const_length (yyvsp[0]); } -#line 7297 "parser.c" +#line 7356 "parser.c" break; case 368: /* constant_entry: level_number const_name CONSTANT const_global _as lit_or_length */ -#line 2739 "parser.y" +#line 2748 "parser.y" { cb_tree x; int level; @@ -7313,29 +7372,29 @@ yyparse (void) /* Ignore return value */ cb_validate_78_item (CB_FIELD (x)); } -#line 7317 "parser.c" +#line 7376 "parser.c" break; case 369: /* data_description_clause_sequence: %empty */ -#line 2758 "parser.y" +#line 2767 "parser.y" { /* required to check redefines */ yyval = NULL; } -#line 7326 "parser.c" +#line 7385 "parser.c" break; case 370: /* data_description_clause_sequence: data_description_clause_sequence data_description_clause */ -#line 2764 "parser.y" +#line 2773 "parser.y" { /* required to check redefines */ yyval = cb_true; } -#line 7335 "parser.c" +#line 7394 "parser.c" break; case 386: /* redefines_clause: REDEFINES identifier_1 */ -#line 2793 "parser.y" +#line 2802 "parser.y" { if (yyvsp[-2] != NULL) { /* hack for MF compatibility */ @@ -7351,11 +7410,11 @@ yyparse (void) YYERROR; } } -#line 7355 "parser.c" +#line 7414 "parser.c" break; case 387: /* external_clause: _is EXTERNAL as_extname */ -#line 2815 "parser.y" +#line 2824 "parser.y" { if (current_storage != CB_STORAGE_WORKING) { cb_error (_("EXTERNAL not allowed here")); @@ -7374,28 +7433,28 @@ yyparse (void) has_external = 1; } } -#line 7378 "parser.c" +#line 7437 "parser.c" break; case 388: /* as_extname: %empty */ -#line 2836 "parser.y" +#line 2845 "parser.y" { current_field->ename = NULL; } -#line 7384 "parser.c" +#line 7443 "parser.c" break; case 389: /* as_extname: AS "Literal" */ -#line 2838 "parser.y" +#line 2847 "parser.y" { struct cb_field *x; x = CB_FIELD(cb_build_field (cb_build_reference ((char *)(CB_LITERAL (yyvsp[0])->data)))); current_field->ename = x->name; } -#line 7395 "parser.c" +#line 7454 "parser.c" break; case 390: /* global_clause: _is GLOBAL */ -#line 2850 "parser.y" +#line 2859 "parser.y" { if (current_field->level != 1 && current_field->level != 77) { cb_error (_("GLOBAL only allowed at 01/77 level")); @@ -7409,209 +7468,209 @@ yyparse (void) current_field->flag_is_global = 1; } } -#line 7413 "parser.c" +#line 7472 "parser.c" break; case 391: /* picture_clause: PICTURE */ -#line 2869 "parser.y" +#line 2878 "parser.y" { current_field->pic = CB_PICTURE (yyvsp[0]); } -#line 7419 "parser.c" +#line 7478 "parser.c" break; case 394: /* usage: BINARY */ -#line 2881 "parser.y" +#line 2890 "parser.y" { current_field->usage = CB_USAGE_BINARY; } -#line 7425 "parser.c" +#line 7484 "parser.c" break; case 395: /* usage: COMP */ -#line 2882 "parser.y" +#line 2891 "parser.y" { current_field->usage = CB_USAGE_BINARY; } -#line 7431 "parser.c" +#line 7490 "parser.c" break; case 396: /* usage: "COMP-1" */ -#line 2883 "parser.y" +#line 2892 "parser.y" { current_field->usage = CB_USAGE_FLOAT; } -#line 7437 "parser.c" +#line 7496 "parser.c" break; case 397: /* usage: "COMP-2" */ -#line 2884 "parser.y" +#line 2893 "parser.y" { current_field->usage = CB_USAGE_DOUBLE; } -#line 7443 "parser.c" +#line 7502 "parser.c" break; case 398: /* usage: "COMP-3" */ -#line 2885 "parser.y" +#line 2894 "parser.y" { current_field->usage = CB_USAGE_PACKED; } -#line 7449 "parser.c" +#line 7508 "parser.c" break; case 399: /* usage: "COMP-4" */ -#line 2886 "parser.y" +#line 2895 "parser.y" { current_field->usage = CB_USAGE_BINARY; } -#line 7455 "parser.c" +#line 7514 "parser.c" break; case 400: /* usage: "COMP-5" */ -#line 2887 "parser.y" +#line 2896 "parser.y" { current_field->usage = CB_USAGE_COMP_5; } -#line 7461 "parser.c" +#line 7520 "parser.c" break; case 401: /* usage: "COMP-X" */ -#line 2888 "parser.y" +#line 2897 "parser.y" { current_field->usage = CB_USAGE_COMP_X; } -#line 7467 "parser.c" +#line 7526 "parser.c" break; case 402: /* usage: DISPLAY */ -#line 2889 "parser.y" +#line 2898 "parser.y" { current_field->usage = CB_USAGE_DISPLAY; } -#line 7473 "parser.c" +#line 7532 "parser.c" break; case 403: /* usage: INDEX */ -#line 2890 "parser.y" +#line 2899 "parser.y" { current_field->usage = CB_USAGE_INDEX; } -#line 7479 "parser.c" +#line 7538 "parser.c" break; case 404: /* usage: "PACKED-DECIMAL" */ -#line 2891 "parser.y" +#line 2900 "parser.y" { current_field->usage = CB_USAGE_PACKED; } -#line 7485 "parser.c" +#line 7544 "parser.c" break; case 405: /* usage: POINTER */ -#line 2893 "parser.y" +#line 2902 "parser.y" { current_field->usage = CB_USAGE_POINTER; current_field->flag_is_pointer = 1; } -#line 7494 "parser.c" +#line 7553 "parser.c" break; case 406: /* usage: "PROGRAM-POINTER" */ -#line 2898 "parser.y" +#line 2907 "parser.y" { current_field->usage = CB_USAGE_PROGRAM_POINTER; current_field->flag_is_pointer = 1; } -#line 7503 "parser.c" +#line 7562 "parser.c" break; case 407: /* usage: "SIGNED-SHORT" */ -#line 2902 "parser.y" +#line 2911 "parser.y" { current_field->usage = CB_USAGE_SIGNED_SHORT; } -#line 7509 "parser.c" +#line 7568 "parser.c" break; case 408: /* usage: "SIGNED-INT" */ -#line 2903 "parser.y" +#line 2912 "parser.y" { current_field->usage = CB_USAGE_SIGNED_INT; } -#line 7515 "parser.c" +#line 7574 "parser.c" break; case 409: /* usage: "SIGNED-LONG" */ -#line 2904 "parser.y" +#line 2913 "parser.y" { current_field->usage = CB_USAGE_SIGNED_LONG; } -#line 7521 "parser.c" +#line 7580 "parser.c" break; case 410: /* usage: "UNSIGNED-SHORT" */ -#line 2905 "parser.y" +#line 2914 "parser.y" { current_field->usage = CB_USAGE_UNSIGNED_SHORT; } -#line 7527 "parser.c" +#line 7586 "parser.c" break; case 411: /* usage: "UNSIGNED-INT" */ -#line 2906 "parser.y" +#line 2915 "parser.y" { current_field->usage = CB_USAGE_UNSIGNED_INT; } -#line 7533 "parser.c" +#line 7592 "parser.c" break; case 412: /* usage: "UNSIGNED-LONG" */ -#line 2907 "parser.y" +#line 2916 "parser.y" { current_field->usage = CB_USAGE_UNSIGNED_LONG; } -#line 7539 "parser.c" +#line 7598 "parser.c" break; case 413: /* usage: "BINARY-CHAR" SIGNED */ -#line 2908 "parser.y" +#line 2917 "parser.y" { current_field->usage = CB_USAGE_SIGNED_CHAR; } -#line 7545 "parser.c" +#line 7604 "parser.c" break; case 414: /* usage: "BINARY-CHAR" UNSIGNED */ -#line 2909 "parser.y" +#line 2918 "parser.y" { current_field->usage = CB_USAGE_UNSIGNED_CHAR; } -#line 7551 "parser.c" +#line 7610 "parser.c" break; case 415: /* usage: "BINARY-CHAR" */ -#line 2910 "parser.y" +#line 2919 "parser.y" { current_field->usage = CB_USAGE_SIGNED_CHAR; } -#line 7557 "parser.c" +#line 7616 "parser.c" break; case 416: /* usage: "BINARY-SHORT" SIGNED */ -#line 2911 "parser.y" +#line 2920 "parser.y" { current_field->usage = CB_USAGE_SIGNED_SHORT; } -#line 7563 "parser.c" +#line 7622 "parser.c" break; case 417: /* usage: "BINARY-SHORT" UNSIGNED */ -#line 2912 "parser.y" +#line 2921 "parser.y" { current_field->usage = CB_USAGE_UNSIGNED_SHORT; } -#line 7569 "parser.c" +#line 7628 "parser.c" break; case 418: /* usage: "BINARY-SHORT" */ -#line 2913 "parser.y" +#line 2922 "parser.y" { current_field->usage = CB_USAGE_SIGNED_SHORT; } -#line 7575 "parser.c" +#line 7634 "parser.c" break; case 419: /* usage: "BINARY-LONG" SIGNED */ -#line 2914 "parser.y" +#line 2923 "parser.y" { current_field->usage = CB_USAGE_SIGNED_INT; } -#line 7581 "parser.c" +#line 7640 "parser.c" break; case 420: /* usage: "BINARY-LONG" UNSIGNED */ -#line 2915 "parser.y" +#line 2924 "parser.y" { current_field->usage = CB_USAGE_UNSIGNED_INT; } -#line 7587 "parser.c" +#line 7646 "parser.c" break; case 421: /* usage: "BINARY-LONG" */ -#line 2916 "parser.y" +#line 2925 "parser.y" { current_field->usage = CB_USAGE_SIGNED_INT; } -#line 7593 "parser.c" +#line 7652 "parser.c" break; case 422: /* usage: "BINARY-DOUBLE" SIGNED */ -#line 2917 "parser.y" +#line 2926 "parser.y" { current_field->usage = CB_USAGE_SIGNED_LONG; } -#line 7599 "parser.c" +#line 7658 "parser.c" break; case 423: /* usage: "BINARY-DOUBLE" UNSIGNED */ -#line 2918 "parser.y" +#line 2927 "parser.y" { current_field->usage = CB_USAGE_UNSIGNED_LONG; } -#line 7605 "parser.c" +#line 7664 "parser.c" break; case 424: /* usage: "BINARY-DOUBLE" */ -#line 2919 "parser.y" +#line 2928 "parser.y" { current_field->usage = CB_USAGE_SIGNED_LONG; } -#line 7611 "parser.c" +#line 7670 "parser.c" break; case 425: /* usage: "BINARY-C-LONG" SIGNED */ -#line 2921 "parser.y" +#line 2930 "parser.y" { if (sizeof(long) == 4) { current_field->usage = CB_USAGE_SIGNED_INT; @@ -7619,11 +7678,11 @@ yyparse (void) current_field->usage = CB_USAGE_SIGNED_LONG; } } -#line 7623 "parser.c" +#line 7682 "parser.c" break; case 426: /* usage: "BINARY-C-LONG" UNSIGNED */ -#line 2929 "parser.y" +#line 2938 "parser.y" { if (sizeof(long) == 4) { current_field->usage = CB_USAGE_UNSIGNED_INT; @@ -7631,11 +7690,11 @@ yyparse (void) current_field->usage = CB_USAGE_UNSIGNED_LONG; } } -#line 7635 "parser.c" +#line 7694 "parser.c" break; case 427: /* usage: "BINARY-C-LONG" */ -#line 2937 "parser.y" +#line 2946 "parser.y" { if (sizeof(long) == 4) { current_field->usage = CB_USAGE_SIGNED_INT; @@ -7643,35 +7702,35 @@ yyparse (void) current_field->usage = CB_USAGE_SIGNED_LONG; } } -#line 7647 "parser.c" +#line 7706 "parser.c" break; case 428: /* usage: NATIONAL */ -#line 2944 "parser.y" +#line 2953 "parser.y" { PENDING ("USAGE NATIONAL");} -#line 7653 "parser.c" +#line 7712 "parser.c" break; case 429: /* sign_clause: _sign_is LEADING flag_separate */ -#line 2952 "parser.y" +#line 2961 "parser.y" { current_field->flag_sign_separate = CB_INTEGER (yyvsp[0])->val; current_field->flag_sign_leading = 1; } -#line 7662 "parser.c" +#line 7721 "parser.c" break; case 430: /* sign_clause: _sign_is TRAILING flag_separate */ -#line 2957 "parser.y" +#line 2966 "parser.y" { current_field->flag_sign_separate = CB_INTEGER (yyvsp[0])->val; current_field->flag_sign_leading = 0; } -#line 7671 "parser.c" +#line 7730 "parser.c" break; case 434: /* occurs_clause: OCCURS integer occurs_to_integer _times occurs_depending occurs_key_spec */ -#line 2974 "parser.y" +#line 2983 "parser.y" { if (current_field->occurs_depending && !(yyvsp[-3])) { cb_verify (cb_odo_without_to, "ODO without TO clause"); @@ -7684,31 +7743,31 @@ yyparse (void) } current_field->flag_occurs = 1; } -#line 7688 "parser.c" +#line 7747 "parser.c" break; case 435: /* occurs_to_integer: %empty */ -#line 2989 "parser.y" +#line 2998 "parser.y" { yyval = NULL; } -#line 7694 "parser.c" +#line 7753 "parser.c" break; case 436: /* occurs_to_integer: TO integer */ -#line 2990 "parser.y" +#line 2999 "parser.y" { yyval = yyvsp[0]; } -#line 7700 "parser.c" +#line 7759 "parser.c" break; case 438: /* occurs_depending: DEPENDING _on reference */ -#line 2995 "parser.y" +#line 3004 "parser.y" { current_field->occurs_depending = yyvsp[0]; } -#line 7708 "parser.c" +#line 7767 "parser.c" break; case 441: /* occurs_keys: occurs_key_list */ -#line 3004 "parser.y" +#line 3013 "parser.y" { if (yyvsp[0]) { cb_tree l; @@ -7729,11 +7788,11 @@ yyparse (void) current_field->nkeys = nkeys; } } -#line 7733 "parser.c" +#line 7792 "parser.c" break; case 442: /* occurs_key: ascending_or_descending _key _is reference_list */ -#line 3028 "parser.y" +#line 3037 "parser.y" { cb_tree l; @@ -7746,81 +7805,81 @@ yyparse (void) } yyval = yyvsp[0]; } -#line 7750 "parser.c" +#line 7809 "parser.c" break; case 443: /* occurs_key_list: occurs_key */ -#line 3043 "parser.y" +#line 3052 "parser.y" { yyval = yyvsp[0]; } -#line 7756 "parser.c" +#line 7815 "parser.c" break; case 444: /* occurs_key_list: occurs_key_list occurs_key */ -#line 3044 "parser.y" +#line 3053 "parser.y" { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); } -#line 7762 "parser.c" +#line 7821 "parser.c" break; case 445: /* ascending_or_descending: ASCENDING */ -#line 3048 "parser.y" +#line 3057 "parser.y" { yyval = cb_int (COB_ASCENDING); } -#line 7768 "parser.c" +#line 7827 "parser.c" break; case 446: /* ascending_or_descending: DESCENDING */ -#line 3049 "parser.y" +#line 3058 "parser.y" { yyval = cb_int (COB_DESCENDING); } -#line 7774 "parser.c" +#line 7833 "parser.c" break; case 449: /* occurs_indexed: INDEXED _by occurs_index_list */ -#line 3056 "parser.y" +#line 3065 "parser.y" { current_field->index_list = yyvsp[0]; } -#line 7782 "parser.c" +#line 7841 "parser.c" break; case 450: /* occurs_index_list: occurs_index */ -#line 3062 "parser.y" +#line 3071 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 7788 "parser.c" +#line 7847 "parser.c" break; case 451: /* occurs_index_list: occurs_index_list occurs_index */ -#line 3064 "parser.y" +#line 3073 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 7794 "parser.c" +#line 7853 "parser.c" break; case 452: /* occurs_index: "Identifier" */ -#line 3069 "parser.y" +#line 3078 "parser.y" { yyval = cb_build_index (yyvsp[0], cb_int1, 1, current_field); } -#line 7802 "parser.c" +#line 7861 "parser.c" break; case 453: /* justified_clause: JUSTIFIED _right */ -#line 3078 "parser.y" +#line 3087 "parser.y" { current_field->flag_justified = 1; } -#line 7808 "parser.c" +#line 7867 "parser.c" break; case 454: /* synchronized_clause: SYNCHRONIZED left_or_right */ -#line 3085 "parser.y" +#line 3094 "parser.y" { current_field->flag_synchronized = 1; } -#line 7814 "parser.c" +#line 7873 "parser.c" break; case 458: /* blank_clause: BLANK _when ZERO */ -#line 3097 "parser.y" +#line 3106 "parser.y" { current_field->flag_blank_zero = 1; } -#line 7820 "parser.c" +#line 7879 "parser.c" break; case 459: /* based_clause: BASED */ -#line 3105 "parser.y" +#line 3114 "parser.y" { if (current_storage != CB_STORAGE_WORKING && current_storage != CB_STORAGE_LINKAGE && @@ -7840,58 +7899,58 @@ yyparse (void) current_field->flag_item_based = 1; } } -#line 7844 "parser.c" +#line 7903 "parser.c" break; case 460: /* value_clause: VALUE _is literal */ -#line 3129 "parser.y" +#line 3138 "parser.y" { current_field->values = cb_list_init (yyvsp[0]); } -#line 7850 "parser.c" +#line 7909 "parser.c" break; case 461: /* $@24: %empty */ -#line 3133 "parser.y" +#line 3142 "parser.y" { current_field->values = yyvsp[0]; } -#line 7856 "parser.c" +#line 7915 "parser.c" break; case 463: /* value_item_list: value_item */ -#line 3138 "parser.y" +#line 3147 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 7862 "parser.c" +#line 7921 "parser.c" break; case 464: /* value_item_list: value_item_list value_item */ -#line 3139 "parser.y" +#line 3148 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 7868 "parser.c" +#line 7927 "parser.c" break; case 465: /* value_item: literal */ -#line 3143 "parser.y" +#line 3152 "parser.y" { yyval = yyvsp[0]; } -#line 7874 "parser.c" +#line 7933 "parser.c" break; case 466: /* value_item: literal THRU literal */ -#line 3144 "parser.y" +#line 3153 "parser.y" { yyval = cb_build_pair (yyvsp[-2], yyvsp[0]); } -#line 7880 "parser.c" +#line 7939 "parser.c" break; case 468: /* false_is: "FALSE" _is literal */ -#line 3149 "parser.y" +#line 3158 "parser.y" { if (current_field->level != 88) { cb_error (_("FALSE clause only allowed for 88 level")); } current_field->false_88 = cb_list_init (yyvsp[0]); } -#line 7891 "parser.c" +#line 7950 "parser.c" break; case 469: /* renames_clause: RENAMES qualified_word */ -#line 3162 "parser.y" +#line 3171 "parser.y" { if (cb_ref (yyvsp[0]) != cb_error_node) { if (CB_FIELD (cb_ref (yyvsp[0]))->level == 01 || @@ -7903,11 +7962,11 @@ yyparse (void) } } } -#line 7907 "parser.c" +#line 7966 "parser.c" break; case 470: /* renames_clause: RENAMES qualified_word THRU qualified_word */ -#line 3174 "parser.y" +#line 3183 "parser.y" { if (cb_ref (yyvsp[-2]) != cb_error_node && cb_ref (yyvsp[0]) != cb_error_node) { if (CB_FIELD (cb_ref (yyvsp[-2]))->level == 01 || @@ -7922,11 +7981,11 @@ yyparse (void) } } } -#line 7926 "parser.c" +#line 7985 "parser.c" break; case 471: /* any_length_clause: ANY LENGTH */ -#line 3194 "parser.y" +#line 3203 "parser.y" { if (current_field->flag_item_based) { cb_error (_("BASED and ANY LENGTH are mutually exclusive")); @@ -7934,107 +7993,107 @@ yyparse (void) current_field->flag_any_length = 1; } } -#line 7938 "parser.c" +#line 7997 "parser.c" break; case 473: /* $@25: %empty */ -#line 3209 "parser.y" +#line 3218 "parser.y" { current_storage = CB_STORAGE_LOCAL; if (current_program->nested_level) { cb_error (_("LOCAL-STORAGE not allowed in nested programs")); } } -#line 7949 "parser.c" +#line 8008 "parser.c" break; case 474: /* local_storage_section: "LOCAL-STORAGE" SECTION '.' $@25 record_description_list */ -#line 3216 "parser.y" +#line 3225 "parser.y" { if (yyvsp[0]) { current_program->local_storage = CB_FIELD (yyvsp[0]); } } -#line 7959 "parser.c" +#line 8018 "parser.c" break; case 476: /* $@26: %empty */ -#line 3229 "parser.y" +#line 3238 "parser.y" { current_storage = CB_STORAGE_LINKAGE; } -#line 7965 "parser.c" +#line 8024 "parser.c" break; case 477: /* linkage_section: LINKAGE SECTION '.' $@26 record_description_list */ -#line 3231 "parser.y" +#line 3240 "parser.y" { if (yyvsp[0]) { current_program->linkage_storage = CB_FIELD (yyvsp[0]); } } -#line 7975 "parser.c" +#line 8034 "parser.c" break; case 479: /* $@27: %empty */ -#line 3244 "parser.y" +#line 3253 "parser.y" { cb_error (_("REPORT SECTION not supported")); current_storage = CB_STORAGE_REPORT; } -#line 7984 "parser.c" +#line 8043 "parser.c" break; case 486: /* report_description_options: %empty */ -#line 3277 "parser.y" +#line 3286 "parser.y" { cb_warning (_("Report description using defaults")); } -#line 7992 "parser.c" +#line 8051 "parser.c" break; case 488: /* report_description_option: _is GLOBAL */ -#line 3285 "parser.y" +#line 3294 "parser.y" { cb_error (_("GLOBAL is not allowed with RD")); } -#line 8000 "parser.c" +#line 8059 "parser.c" break; case 497: /* identifier_list: identifier */ -#line 3308 "parser.y" +#line 3317 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 8006 "parser.c" +#line 8065 "parser.c" break; case 498: /* identifier_list: identifier_list identifier */ -#line 3309 "parser.y" +#line 3318 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 8012 "parser.c" +#line 8071 "parser.c" break; case 520: /* report_group_option: type_clause */ -#line 3365 "parser.y" +#line 3374 "parser.y" { cb_warning (_("looking for Report line TYPE")); } -#line 8018 "parser.c" +#line 8077 "parser.c" break; case 571: /* $@28: %empty */ -#line 3470 "parser.y" +#line 3479 "parser.y" { current_storage = CB_STORAGE_SCREEN; } -#line 8024 "parser.c" +#line 8083 "parser.c" break; case 572: /* $@29: %empty */ -#line 3471 "parser.y" +#line 3480 "parser.y" { current_field = NULL; description_field = NULL; cb_clear_real_field (); } -#line 8034 "parser.c" +#line 8093 "parser.c" break; case 573: /* screen_section: SCREEN SECTION '.' $@28 $@29 opt_screen_description_list */ -#line 3477 "parser.y" +#line 3486 "parser.y" { struct cb_field *p; @@ -8044,11 +8103,11 @@ yyparse (void) current_program->screen_storage = description_field; current_program->flag_screen = 1; } -#line 8048 "parser.c" +#line 8107 "parser.c" break; case 579: /* $@30: %empty */ -#line 3501 "parser.y" +#line 3510 "parser.y" { cb_tree x; @@ -8065,11 +8124,11 @@ yyparse (void) current_field->screen_backg = current_field->parent->screen_backg; } } -#line 8069 "parser.c" +#line 8128 "parser.c" break; case 580: /* screen_description: level_number entry_name $@30 screen_options '.' */ -#line 3518 "parser.y" +#line 3527 "parser.y" { if (!qualifier && (current_field->level == 88 || current_field->level == 77 || current_field->level == 66 || @@ -8087,259 +8146,259 @@ yyparse (void) description_field = current_field; } } -#line 8091 "parser.c" +#line 8150 "parser.c" break; case 583: /* screen_option: "BLANK-LINE" */ -#line 3542 "parser.y" +#line 3551 "parser.y" { current_field->screen_flag |= COB_SCREEN_BLANK_LINE; } -#line 8097 "parser.c" +#line 8156 "parser.c" break; case 584: /* screen_option: "BLANK-SCREEN" */ -#line 3543 "parser.y" +#line 3552 "parser.y" { current_field->screen_flag |= COB_SCREEN_BLANK_SCREEN; } -#line 8103 "parser.c" +#line 8162 "parser.c" break; case 585: /* screen_option: BELL */ -#line 3544 "parser.y" +#line 3553 "parser.y" { current_field->screen_flag |= COB_SCREEN_BELL; } -#line 8109 "parser.c" +#line 8168 "parser.c" break; case 586: /* screen_option: BLINK */ -#line 3545 "parser.y" +#line 3554 "parser.y" { current_field->screen_flag |= COB_SCREEN_BLINK; } -#line 8115 "parser.c" +#line 8174 "parser.c" break; case 587: /* screen_option: ERASE EOL */ -#line 3546 "parser.y" +#line 3555 "parser.y" { current_field->screen_flag |= COB_SCREEN_ERASE_EOL; } -#line 8121 "parser.c" +#line 8180 "parser.c" break; case 588: /* screen_option: ERASE EOS */ -#line 3547 "parser.y" +#line 3556 "parser.y" { current_field->screen_flag |= COB_SCREEN_ERASE_EOS; } -#line 8127 "parser.c" +#line 8186 "parser.c" break; case 589: /* screen_option: HIGHLIGHT */ -#line 3548 "parser.y" +#line 3557 "parser.y" { current_field->screen_flag |= COB_SCREEN_HIGHLIGHT; } -#line 8133 "parser.c" +#line 8192 "parser.c" break; case 590: /* screen_option: LOWLIGHT */ -#line 3549 "parser.y" +#line 3558 "parser.y" { current_field->screen_flag |= COB_SCREEN_LOWLIGHT; } -#line 8139 "parser.c" +#line 8198 "parser.c" break; case 591: /* screen_option: "REVERSE-VIDEO" */ -#line 3550 "parser.y" +#line 3559 "parser.y" { current_field->screen_flag |= COB_SCREEN_REVERSE; } -#line 8145 "parser.c" +#line 8204 "parser.c" break; case 592: /* screen_option: UNDERLINE */ -#line 3551 "parser.y" +#line 3560 "parser.y" { current_field->screen_flag |= COB_SCREEN_UNDERLINE; } -#line 8151 "parser.c" +#line 8210 "parser.c" break; case 593: /* screen_option: OVERLINE */ -#line 3552 "parser.y" +#line 3561 "parser.y" { current_field->screen_flag |= COB_SCREEN_OVERLINE; } -#line 8157 "parser.c" +#line 8216 "parser.c" break; case 594: /* screen_option: AUTO */ -#line 3553 "parser.y" +#line 3562 "parser.y" { current_field->screen_flag |= COB_SCREEN_AUTO; } -#line 8163 "parser.c" +#line 8222 "parser.c" break; case 595: /* screen_option: SECURE */ -#line 3554 "parser.y" +#line 3563 "parser.y" { current_field->screen_flag |= COB_SCREEN_SECURE; } -#line 8169 "parser.c" +#line 8228 "parser.c" break; case 596: /* screen_option: REQUIRED */ -#line 3555 "parser.y" +#line 3564 "parser.y" { current_field->screen_flag |= COB_SCREEN_REQUIRED; } -#line 8175 "parser.c" +#line 8234 "parser.c" break; case 597: /* screen_option: FULL */ -#line 3556 "parser.y" +#line 3565 "parser.y" { current_field->screen_flag |= COB_SCREEN_FULL; } -#line 8181 "parser.c" +#line 8240 "parser.c" break; case 598: /* screen_option: PROMPT */ -#line 3557 "parser.y" +#line 3566 "parser.y" { current_field->screen_flag |= COB_SCREEN_PROMPT; } -#line 8187 "parser.c" +#line 8246 "parser.c" break; case 599: /* screen_option: LINE _number _is screen_line_plus_minus num_id_or_lit */ -#line 3559 "parser.y" +#line 3568 "parser.y" { current_field->screen_line = yyvsp[0]; } -#line 8195 "parser.c" +#line 8254 "parser.c" break; case 600: /* screen_option: COLUMN _number _is screen_col_plus_minus num_id_or_lit */ -#line 3563 "parser.y" +#line 3572 "parser.y" { current_field->screen_column = yyvsp[0]; } -#line 8203 "parser.c" +#line 8262 "parser.c" break; case 601: /* screen_option: "FOREGROUND-COLOR" _is num_id_or_lit */ -#line 3567 "parser.y" +#line 3576 "parser.y" { current_field->screen_foreg = yyvsp[0]; } -#line 8211 "parser.c" +#line 8270 "parser.c" break; case 602: /* screen_option: "BACKGROUND-COLOR" _is num_id_or_lit */ -#line 3571 "parser.y" +#line 3580 "parser.y" { current_field->screen_backg = yyvsp[0]; } -#line 8219 "parser.c" +#line 8278 "parser.c" break; case 610: /* screen_option: USING identifier */ -#line 3582 "parser.y" +#line 3591 "parser.y" { current_field->screen_from = yyvsp[0]; current_field->screen_to = yyvsp[0]; current_field->screen_flag |= COB_SCREEN_PROMPT; current_field->screen_flag |= COB_SCREEN_INPUT; } -#line 8230 "parser.c" +#line 8289 "parser.c" break; case 611: /* screen_option: FROM id_or_lit_or_func */ -#line 3589 "parser.y" +#line 3598 "parser.y" { current_field->screen_from = yyvsp[0]; } -#line 8238 "parser.c" +#line 8297 "parser.c" break; case 612: /* screen_option: TO identifier */ -#line 3593 "parser.y" +#line 3602 "parser.y" { current_field->screen_to = yyvsp[0]; current_field->screen_flag |= COB_SCREEN_PROMPT; current_field->screen_flag |= COB_SCREEN_INPUT; } -#line 8248 "parser.c" +#line 8307 "parser.c" break; case 613: /* screen_line_plus_minus: %empty */ -#line 3602 "parser.y" +#line 3611 "parser.y" { /* Nothing */ } -#line 8256 "parser.c" +#line 8315 "parser.c" break; case 614: /* screen_line_plus_minus: PLUS */ -#line 3606 "parser.y" +#line 3615 "parser.y" { current_field->screen_flag |= COB_SCREEN_LINE_PLUS; } -#line 8264 "parser.c" +#line 8323 "parser.c" break; case 615: /* screen_line_plus_minus: '+' */ -#line 3610 "parser.y" +#line 3619 "parser.y" { current_field->screen_flag |= COB_SCREEN_LINE_PLUS; } -#line 8272 "parser.c" +#line 8331 "parser.c" break; case 616: /* screen_line_plus_minus: MINUS */ -#line 3614 "parser.y" +#line 3623 "parser.y" { current_field->screen_flag |= COB_SCREEN_LINE_MINUS; } -#line 8280 "parser.c" +#line 8339 "parser.c" break; case 617: /* screen_line_plus_minus: '-' */ -#line 3618 "parser.y" +#line 3627 "parser.y" { current_field->screen_flag |= COB_SCREEN_LINE_MINUS; } -#line 8288 "parser.c" +#line 8347 "parser.c" break; case 618: /* screen_col_plus_minus: %empty */ -#line 3625 "parser.y" +#line 3634 "parser.y" { /* Nothing */ } -#line 8296 "parser.c" +#line 8355 "parser.c" break; case 619: /* screen_col_plus_minus: PLUS */ -#line 3629 "parser.y" +#line 3638 "parser.y" { current_field->screen_flag |= COB_SCREEN_COLUMN_PLUS; } -#line 8304 "parser.c" +#line 8363 "parser.c" break; case 620: /* screen_col_plus_minus: '+' */ -#line 3633 "parser.y" +#line 3642 "parser.y" { current_field->screen_flag |= COB_SCREEN_COLUMN_PLUS; } -#line 8312 "parser.c" +#line 8371 "parser.c" break; case 621: /* screen_col_plus_minus: MINUS */ -#line 3637 "parser.y" +#line 3646 "parser.y" { current_field->screen_flag |= COB_SCREEN_COLUMN_MINUS; } -#line 8320 "parser.c" +#line 8379 "parser.c" break; case 622: /* screen_col_plus_minus: '-' */ -#line 3641 "parser.y" +#line 3650 "parser.y" { current_field->screen_flag |= COB_SCREEN_COLUMN_MINUS; } -#line 8328 "parser.c" +#line 8387 "parser.c" break; case 623: /* screen_occurs_clause: OCCURS integer _times */ -#line 3649 "parser.y" +#line 3658 "parser.y" { current_field->occurs_max = cb_get_int (yyvsp[-1]); current_field->occurs_min = current_field->occurs_max; current_field->indexes++; current_field->flag_occurs = 1; } -#line 8339 "parser.c" +#line 8398 "parser.c" break; case 625: /* $@31: %empty */ -#line 3663 "parser.y" +#line 3672 "parser.y" { current_section = NULL; current_paragraph = NULL; @@ -8349,11 +8408,11 @@ yyparse (void) cb_define_system_name ("SYSERR"); cb_set_in_procedure (); } -#line 8353 "parser.c" +#line 8412 "parser.c" break; case 626: /* $@32: %empty */ -#line 3673 "parser.y" +#line 3682 "parser.y" { if (current_program->flag_main && !current_program->flag_chained && yyvsp[-4]) { cb_error (_("Executable program requested but PROCEDURE/ENTRY has USING clause")); @@ -8363,11 +8422,11 @@ yyparse (void) emit_entry (current_program->source_name, 1, yyvsp[-4]); } } -#line 8367 "parser.c" +#line 8426 "parser.c" break; case 627: /* procedure_division: PROCEDURE DIVISION procedure_using_chaining procedure_returning '.' $@31 procedure_declaratives $@32 procedure_list */ -#line 3683 "parser.y" +#line 3692 "parser.y" { if (current_paragraph) { if (current_paragraph->exit_label) { @@ -8382,76 +8441,76 @@ yyparse (void) emit_statement (cb_build_perform_exit (current_section)); } } -#line 8386 "parser.c" +#line 8445 "parser.c" break; case 628: /* procedure_using_chaining: %empty */ -#line 3700 "parser.y" +#line 3709 "parser.y" { yyval = NULL; } -#line 8392 "parser.c" +#line 8451 "parser.c" break; case 629: /* $@33: %empty */ -#line 3702 "parser.y" +#line 3711 "parser.y" { call_mode = CB_CALL_BY_REFERENCE; size_mode = CB_SIZE_4; } -#line 8401 "parser.c" +#line 8460 "parser.c" break; case 630: /* procedure_using_chaining: USING $@33 procedure_param_list */ -#line 3706 "parser.y" +#line 3715 "parser.y" { yyval = yyvsp[0]; } -#line 8407 "parser.c" +#line 8466 "parser.c" break; case 631: /* $@34: %empty */ -#line 3708 "parser.y" +#line 3717 "parser.y" { call_mode = CB_CALL_BY_REFERENCE; current_program->flag_chained = 1; } -#line 8416 "parser.c" +#line 8475 "parser.c" break; case 632: /* procedure_using_chaining: CHAINING $@34 procedure_param_list */ -#line 3712 "parser.y" +#line 3721 "parser.y" { yyval = yyvsp[0]; } -#line 8422 "parser.c" +#line 8481 "parser.c" break; case 633: /* procedure_param_list: procedure_param */ -#line 3716 "parser.y" +#line 3725 "parser.y" { yyval = yyvsp[0]; } -#line 8428 "parser.c" +#line 8487 "parser.c" break; case 634: /* procedure_param_list: procedure_param_list procedure_param */ -#line 3718 "parser.y" +#line 3727 "parser.y" { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); } -#line 8434 "parser.c" +#line 8493 "parser.c" break; case 635: /* procedure_param: procedure_type size_optional procedure_optional "Identifier" */ -#line 3723 "parser.y" +#line 3732 "parser.y" { yyval = cb_build_pair (cb_int (call_mode), cb_build_identifier (yyvsp[0])); CB_SIZES (yyval) = size_mode; } -#line 8443 "parser.c" +#line 8502 "parser.c" break; case 637: /* procedure_type: _by REFERENCE */ -#line 3732 "parser.y" +#line 3741 "parser.y" { call_mode = CB_CALL_BY_REFERENCE; } -#line 8451 "parser.c" +#line 8510 "parser.c" break; case 638: /* procedure_type: _by VALUE */ -#line 3736 "parser.y" +#line 3745 "parser.y" { if (current_program->flag_chained) { cb_error (_("BY VALUE not allowed in CHAINED program")); @@ -8459,11 +8518,11 @@ yyparse (void) call_mode = CB_CALL_BY_VALUE; } } -#line 8463 "parser.c" +#line 8522 "parser.c" break; case 640: /* size_optional: SIZE _is AUTO */ -#line 3748 "parser.y" +#line 3757 "parser.y" { if (call_mode != CB_CALL_BY_VALUE) { cb_error (_("SIZE only allowed for BY VALUE items")); @@ -8471,11 +8530,11 @@ yyparse (void) size_mode = CB_SIZE_AUTO; } } -#line 8475 "parser.c" +#line 8534 "parser.c" break; case 641: /* size_optional: SIZE _is DEFAULT */ -#line 3756 "parser.y" +#line 3765 "parser.y" { if (call_mode != CB_CALL_BY_VALUE) { cb_error (_("SIZE only allowed for BY VALUE items")); @@ -8483,11 +8542,11 @@ yyparse (void) size_mode = CB_SIZE_4; } } -#line 8487 "parser.c" +#line 8546 "parser.c" break; case 642: /* size_optional: UNSIGNED SIZE _is integer */ -#line 3764 "parser.y" +#line 3773 "parser.y" { unsigned char *s = CB_LITERAL (yyvsp[0])->data; @@ -8516,11 +8575,11 @@ yyparse (void) } } } -#line 8520 "parser.c" +#line 8579 "parser.c" break; case 643: /* size_optional: SIZE _is integer */ -#line 3793 "parser.y" +#line 3802 "parser.y" { unsigned char *s = CB_LITERAL (yyvsp[0])->data; @@ -8549,31 +8608,31 @@ yyparse (void) } } } -#line 8553 "parser.c" +#line 8612 "parser.c" break; case 645: /* procedure_optional: OPTIONAL */ -#line 3826 "parser.y" +#line 3835 "parser.y" { if (call_mode != CB_CALL_BY_REFERENCE) { cb_error (_("OPTIONAL only allowed for BY REFERENCE items")); } } -#line 8563 "parser.c" +#line 8622 "parser.c" break; case 646: /* procedure_returning: %empty */ -#line 3835 "parser.y" +#line 3844 "parser.y" { if (current_program->prog_type == CB_FUNCTION_TYPE) { cb_error (_("RETURNING clause is required for a FUNCTION")); } } -#line 8573 "parser.c" +#line 8632 "parser.c" break; case 647: /* procedure_returning: RETURNING "Identifier" */ -#line 3841 "parser.y" +#line 3850 "parser.y" { if (cb_ref (yyvsp[0]) != cb_error_node) { current_program->returning = yyvsp[0]; @@ -8582,17 +8641,17 @@ yyparse (void) } } } -#line 8586 "parser.c" +#line 8645 "parser.c" break; case 649: /* $@35: %empty */ -#line 3852 "parser.y" +#line 3861 "parser.y" { in_declaratives = 1; } -#line 8592 "parser.c" +#line 8651 "parser.c" break; case 650: /* procedure_declaratives: DECLARATIVES '.' $@35 procedure_list END DECLARATIVES '.' */ -#line 3855 "parser.y" +#line 3864 "parser.y" { in_declaratives = 0; if (current_paragraph) { @@ -8610,11 +8669,11 @@ yyparse (void) current_section = NULL; } } -#line 8614 "parser.c" +#line 8673 "parser.c" break; case 656: /* procedure: statements '.' */ -#line 3888 "parser.y" +#line 3897 "parser.y" { if (next_label_list) { cb_tree label; @@ -8630,19 +8689,19 @@ yyparse (void) } /* check_unreached = 0; */ } -#line 8634 "parser.c" +#line 8693 "parser.c" break; case 657: /* procedure: error */ -#line 3904 "parser.y" +#line 3913 "parser.y" { check_unreached = 0; } -#line 8642 "parser.c" +#line 8701 "parser.c" break; case 658: /* section_header: section_name SECTION opt_segment '.' */ -#line 3916 "parser.y" +#line 3925 "parser.y" { non_const_word = 0; check_unreached = 0; @@ -8670,11 +8729,11 @@ yyparse (void) current_paragraph = NULL; emit_statement (CB_TREE (current_section)); } -#line 8674 "parser.c" +#line 8733 "parser.c" break; case 659: /* paragraph_header: "Identifier" '.' */ -#line 3947 "parser.y" +#line 3956 "parser.y" { cb_tree label; @@ -8708,11 +8767,11 @@ yyparse (void) } emit_statement (CB_TREE (current_paragraph)); } -#line 8712 "parser.c" +#line 8771 "parser.c" break; case 660: /* invalid_statement: section_name */ -#line 3984 "parser.y" +#line 3993 "parser.y" { non_const_word = 0; check_unreached = 0; @@ -8721,51 +8780,51 @@ yyparse (void) } YYERROR; } -#line 8725 "parser.c" +#line 8784 "parser.c" break; case 661: /* section_name: "Identifier" */ -#line 3995 "parser.y" +#line 4004 "parser.y" { yyval = cb_build_section_name (yyvsp[0], 0); } -#line 8731 "parser.c" +#line 8790 "parser.c" break; case 663: /* opt_segment: "Literal" */ -#line 3999 "parser.y" +#line 4008 "parser.y" { /* ignore */ } -#line 8737 "parser.c" +#line 8796 "parser.c" break; case 664: /* @36: %empty */ -#line 4008 "parser.y" +#line 4017 "parser.y" { yyval = current_program->exec_list; current_program->exec_list = NULL; } -#line 8746 "parser.c" +#line 8805 "parser.c" break; case 665: /* @37: %empty */ -#line 4012 "parser.y" +#line 4021 "parser.y" { yyval = CB_TREE (current_statement); current_statement = NULL; } -#line 8755 "parser.c" +#line 8814 "parser.c" break; case 666: /* statement_list: @36 @37 statements */ -#line 4017 "parser.y" +#line 4026 "parser.y" { yyval = cb_list_reverse (current_program->exec_list); current_program->exec_list = yyvsp[-2]; current_statement = CB_STATEMENT (yyvsp[-1]); } -#line 8765 "parser.c" +#line 8824 "parser.c" break; case 667: /* statements: %empty */ -#line 4025 "parser.y" +#line 4034 "parser.y" { cb_tree label; @@ -8786,11 +8845,11 @@ yyparse (void) cb_cons (CB_TREE (current_paragraph), current_section->children); } } -#line 8790 "parser.c" +#line 8849 "parser.c" break; case 718: /* statement: "NEXT SENTENCE" */ -#line 4100 "parser.y" +#line 4109 "parser.y" { if (cb_verify (cb_next_sentence_phrase, "NEXT SENTENCE")) { cb_tree label; @@ -8804,11 +8863,11 @@ yyparse (void) } check_unreached = 0; } -#line 8808 "parser.c" +#line 8867 "parser.c" break; case 719: /* $@38: %empty */ -#line 4122 "parser.y" +#line 4131 "parser.y" { BEGIN_STATEMENT ("ACCEPT", TERM_ACCEPT); dispattrs = 0; @@ -8816,489 +8875,489 @@ yyparse (void) bgc = NULL; scroll = NULL; } -#line 8820 "parser.c" +#line 8879 "parser.c" break; case 721: /* accept_body: identifier opt_at_line_column opt_accp_attr on_accp_exception */ -#line 4135 "parser.y" +#line 4144 "parser.y" { cb_emit_accept (yyvsp[-3], yyvsp[-2], fgc, bgc, scroll, dispattrs); } -#line 8828 "parser.c" +#line 8887 "parser.c" break; case 722: /* accept_body: identifier FROM ESCAPE KEY */ -#line 4139 "parser.y" +#line 4148 "parser.y" { PENDING ("ACCEPT .. FROM ESCAPE KEY"); } -#line 8836 "parser.c" +#line 8895 "parser.c" break; case 723: /* accept_body: identifier FROM LINES */ -#line 4143 "parser.y" +#line 4152 "parser.y" { cb_emit_accept_line_or_col (yyvsp[-2], 0); } -#line 8844 "parser.c" +#line 8903 "parser.c" break; case 724: /* accept_body: identifier FROM COLUMNS */ -#line 4147 "parser.y" +#line 4156 "parser.y" { cb_emit_accept_line_or_col (yyvsp[-2], 1); } -#line 8852 "parser.c" +#line 8911 "parser.c" break; case 725: /* accept_body: identifier FROM DATE */ -#line 4151 "parser.y" +#line 4160 "parser.y" { cb_emit_accept_date (yyvsp[-2]); } -#line 8860 "parser.c" +#line 8919 "parser.c" break; case 726: /* accept_body: identifier FROM DATE YYYYMMDD */ -#line 4155 "parser.y" +#line 4164 "parser.y" { cb_emit_accept_date_yyyymmdd (yyvsp[-3]); } -#line 8868 "parser.c" +#line 8927 "parser.c" break; case 727: /* accept_body: identifier FROM DAY */ -#line 4159 "parser.y" +#line 4168 "parser.y" { cb_emit_accept_day (yyvsp[-2]); } -#line 8876 "parser.c" +#line 8935 "parser.c" break; case 728: /* accept_body: identifier FROM DAY YYYYDDD */ -#line 4163 "parser.y" +#line 4172 "parser.y" { cb_emit_accept_day_yyyyddd (yyvsp[-3]); } -#line 8884 "parser.c" +#line 8943 "parser.c" break; case 729: /* accept_body: identifier FROM "DAY-OF-WEEK" */ -#line 4167 "parser.y" +#line 4176 "parser.y" { cb_emit_accept_day_of_week (yyvsp[-2]); } -#line 8892 "parser.c" +#line 8951 "parser.c" break; case 730: /* accept_body: identifier FROM TIME */ -#line 4171 "parser.y" +#line 4180 "parser.y" { cb_emit_accept_time (yyvsp[-2]); } -#line 8900 "parser.c" +#line 8959 "parser.c" break; case 731: /* accept_body: identifier FROM "COMMAND-LINE" */ -#line 4175 "parser.y" +#line 4184 "parser.y" { cb_emit_accept_command_line (yyvsp[-2]); } -#line 8908 "parser.c" +#line 8967 "parser.c" break; case 732: /* accept_body: identifier FROM "ENVIRONMENT-VALUE" on_accp_exception */ -#line 4179 "parser.y" +#line 4188 "parser.y" { cb_emit_accept_environment (yyvsp[-3]); } -#line 8916 "parser.c" +#line 8975 "parser.c" break; case 733: /* accept_body: identifier FROM ENVIRONMENT simple_value on_accp_exception */ -#line 4183 "parser.y" +#line 4192 "parser.y" { cb_emit_get_environment (yyvsp[-1], yyvsp[-4]); } -#line 8924 "parser.c" +#line 8983 "parser.c" break; case 734: /* accept_body: identifier FROM "ARGUMENT-NUMBER" */ -#line 4187 "parser.y" +#line 4196 "parser.y" { cb_emit_accept_arg_number (yyvsp[-2]); } -#line 8932 "parser.c" +#line 8991 "parser.c" break; case 735: /* accept_body: identifier FROM "ARGUMENT-VALUE" on_accp_exception */ -#line 4191 "parser.y" +#line 4200 "parser.y" { cb_emit_accept_arg_value (yyvsp[-3]); } -#line 8940 "parser.c" +#line 8999 "parser.c" break; case 736: /* accept_body: identifier FROM mnemonic_name */ -#line 4195 "parser.y" +#line 4204 "parser.y" { cb_emit_accept_mnemonic (yyvsp[-2], yyvsp[0]); } -#line 8948 "parser.c" +#line 9007 "parser.c" break; case 737: /* accept_body: identifier FROM "Identifier" */ -#line 4199 "parser.y" +#line 4208 "parser.y" { cb_emit_accept_name (yyvsp[-2], yyvsp[0]); } -#line 8956 "parser.c" +#line 9015 "parser.c" break; case 738: /* opt_at_line_column: %empty */ -#line 4205 "parser.y" +#line 4214 "parser.y" { yyval = NULL; } -#line 8962 "parser.c" +#line 9021 "parser.c" break; case 739: /* opt_at_line_column: _at line_number column_number */ -#line 4206 "parser.y" +#line 4215 "parser.y" { yyval = cb_build_pair (yyvsp[-1], yyvsp[0]); } -#line 8968 "parser.c" +#line 9027 "parser.c" break; case 740: /* opt_at_line_column: _at column_number line_number */ -#line 4207 "parser.y" +#line 4216 "parser.y" { yyval = cb_build_pair (yyvsp[0], yyvsp[-1]); } -#line 8974 "parser.c" +#line 9033 "parser.c" break; case 741: /* opt_at_line_column: _at line_number */ -#line 4208 "parser.y" +#line 4217 "parser.y" { yyval = cb_build_pair (yyvsp[0], NULL); } -#line 8980 "parser.c" +#line 9039 "parser.c" break; case 742: /* opt_at_line_column: _at column_number */ -#line 4209 "parser.y" +#line 4218 "parser.y" { yyval = cb_build_pair (NULL, yyvsp[0]); } -#line 8986 "parser.c" +#line 9045 "parser.c" break; case 743: /* opt_at_line_column: AT simple_value */ -#line 4210 "parser.y" +#line 4219 "parser.y" { yyval = yyvsp[0]; } -#line 8992 "parser.c" +#line 9051 "parser.c" break; case 744: /* line_number: LINE _number id_or_lit */ -#line 4214 "parser.y" +#line 4223 "parser.y" { yyval = yyvsp[0]; } -#line 8998 "parser.c" +#line 9057 "parser.c" break; case 745: /* column_number: COLUMN _number id_or_lit */ -#line 4218 "parser.y" +#line 4227 "parser.y" { yyval = yyvsp[0]; } -#line 9004 "parser.c" +#line 9063 "parser.c" break; case 746: /* column_number: POSITION _number id_or_lit */ -#line 4219 "parser.y" +#line 4228 "parser.y" { yyval = yyvsp[0]; } -#line 9010 "parser.c" +#line 9069 "parser.c" break; case 751: /* accp_attr: BELL */ -#line 4232 "parser.y" +#line 4241 "parser.y" { dispattrs |= COB_SCREEN_BELL; } -#line 9016 "parser.c" +#line 9075 "parser.c" break; case 752: /* accp_attr: BLINK */ -#line 4233 "parser.y" +#line 4242 "parser.y" { dispattrs |= COB_SCREEN_BLINK; } -#line 9022 "parser.c" +#line 9081 "parser.c" break; case 753: /* accp_attr: HIGHLIGHT */ -#line 4234 "parser.y" +#line 4243 "parser.y" { dispattrs |= COB_SCREEN_HIGHLIGHT; } -#line 9028 "parser.c" +#line 9087 "parser.c" break; case 754: /* accp_attr: LOWLIGHT */ -#line 4235 "parser.y" +#line 4244 "parser.y" { dispattrs |= COB_SCREEN_LOWLIGHT; } -#line 9034 "parser.c" +#line 9093 "parser.c" break; case 755: /* accp_attr: "REVERSE-VIDEO" */ -#line 4236 "parser.y" +#line 4245 "parser.y" { dispattrs |= COB_SCREEN_REVERSE; } -#line 9040 "parser.c" +#line 9099 "parser.c" break; case 756: /* accp_attr: UNDERLINE */ -#line 4237 "parser.y" +#line 4246 "parser.y" { dispattrs |= COB_SCREEN_UNDERLINE; } -#line 9046 "parser.c" +#line 9105 "parser.c" break; case 757: /* accp_attr: OVERLINE */ -#line 4238 "parser.y" +#line 4247 "parser.y" { dispattrs |= COB_SCREEN_OVERLINE; } -#line 9052 "parser.c" +#line 9111 "parser.c" break; case 758: /* accp_attr: "FOREGROUND-COLOR" _is num_id_or_lit */ -#line 4240 "parser.y" +#line 4249 "parser.y" { fgc = yyvsp[0]; } -#line 9060 "parser.c" +#line 9119 "parser.c" break; case 759: /* accp_attr: "BACKGROUND-COLOR" _is num_id_or_lit */ -#line 4244 "parser.y" +#line 4253 "parser.y" { bgc = yyvsp[0]; } -#line 9068 "parser.c" +#line 9127 "parser.c" break; case 760: /* accp_attr: SCROLL UP _opt_scroll_lines */ -#line 4248 "parser.y" +#line 4257 "parser.y" { scroll = yyvsp[0]; } -#line 9076 "parser.c" +#line 9135 "parser.c" break; case 761: /* accp_attr: SCROLL DOWN _opt_scroll_lines */ -#line 4252 "parser.y" +#line 4261 "parser.y" { dispattrs |= COB_SCREEN_SCROLL_DOWN; scroll = yyvsp[0]; } -#line 9085 "parser.c" +#line 9144 "parser.c" break; case 762: /* accp_attr: AUTO */ -#line 4256 "parser.y" +#line 4265 "parser.y" { dispattrs |= COB_SCREEN_AUTO; } -#line 9091 "parser.c" +#line 9150 "parser.c" break; case 763: /* accp_attr: FULL */ -#line 4257 "parser.y" +#line 4266 "parser.y" { dispattrs |= COB_SCREEN_FULL; } -#line 9097 "parser.c" +#line 9156 "parser.c" break; case 764: /* accp_attr: REQUIRED */ -#line 4258 "parser.y" +#line 4267 "parser.y" { dispattrs |= COB_SCREEN_REQUIRED; } -#line 9103 "parser.c" +#line 9162 "parser.c" break; case 765: /* accp_attr: SECURE */ -#line 4259 "parser.y" +#line 4268 "parser.y" { dispattrs |= COB_SCREEN_SECURE; } -#line 9109 "parser.c" +#line 9168 "parser.c" break; case 766: /* accp_attr: UPDATE */ -#line 4260 "parser.y" +#line 4269 "parser.y" { dispattrs |= COB_SCREEN_UPDATE; } -#line 9115 "parser.c" +#line 9174 "parser.c" break; case 767: /* accp_attr: PROMPT */ -#line 4261 "parser.y" +#line 4270 "parser.y" { dispattrs |= COB_SCREEN_PROMPT; } -#line 9121 "parser.c" +#line 9180 "parser.c" break; case 768: /* end_accept: %empty */ -#line 4265 "parser.y" +#line 4274 "parser.y" { terminator_warning (TERM_ACCEPT); } -#line 9127 "parser.c" +#line 9186 "parser.c" break; case 769: /* end_accept: "END-ACCEPT" */ -#line 4266 "parser.y" +#line 4275 "parser.y" { terminator_clear (TERM_ACCEPT); } -#line 9133 "parser.c" +#line 9192 "parser.c" break; case 770: /* $@39: %empty */ -#line 4275 "parser.y" +#line 4284 "parser.y" { BEGIN_STATEMENT ("ADD", TERM_ADD); } -#line 9139 "parser.c" +#line 9198 "parser.c" break; case 772: /* add_body: x_list TO arithmetic_x_list on_size_error */ -#line 4282 "parser.y" +#line 4291 "parser.y" { cb_emit_arithmetic (yyvsp[-1], '+', cb_build_binary_list (yyvsp[-3], '+')); } -#line 9147 "parser.c" +#line 9206 "parser.c" break; case 773: /* add_body: x_list add_to GIVING arithmetic_x_list on_size_error */ -#line 4286 "parser.y" +#line 4295 "parser.y" { cb_emit_arithmetic (yyvsp[-1], 0, cb_build_binary_list (yyvsp[-4], '+')); } -#line 9155 "parser.c" +#line 9214 "parser.c" break; case 774: /* add_body: CORRESPONDING identifier TO identifier flag_rounded on_size_error */ -#line 4290 "parser.y" +#line 4299 "parser.y" { cb_emit_corresponding (cb_build_add, yyvsp[-2], yyvsp[-4], yyvsp[-1]); } -#line 9163 "parser.c" +#line 9222 "parser.c" break; case 776: /* add_to: TO x */ -#line 4296 "parser.y" +#line 4305 "parser.y" { cb_list_add (yyvsp[-2], yyvsp[0]); } -#line 9169 "parser.c" +#line 9228 "parser.c" break; case 777: /* end_add: %empty */ -#line 4300 "parser.y" +#line 4309 "parser.y" { terminator_warning (TERM_ADD); } -#line 9175 "parser.c" +#line 9234 "parser.c" break; case 778: /* end_add: "END-ADD" */ -#line 4301 "parser.y" +#line 4310 "parser.y" { terminator_clear (TERM_ADD); } -#line 9181 "parser.c" +#line 9240 "parser.c" break; case 779: /* $@40: %empty */ -#line 4310 "parser.y" +#line 4319 "parser.y" { BEGIN_STATEMENT ("ALLOCATE", 0); } -#line 9187 "parser.c" +#line 9246 "parser.c" break; case 781: /* allocate_body: "Identifier" flag_initialized allocate_returning */ -#line 4316 "parser.y" +#line 4325 "parser.y" { cb_emit_allocate (yyvsp[-2], yyvsp[0], NULL, yyvsp[-1]); } -#line 9195 "parser.c" +#line 9254 "parser.c" break; case 782: /* allocate_body: expr CHARACTERS flag_initialized RETURNING target_x */ -#line 4320 "parser.y" +#line 4329 "parser.y" { cb_emit_allocate (NULL, yyvsp[0], yyvsp[-4], yyvsp[-2]); } -#line 9203 "parser.c" +#line 9262 "parser.c" break; case 783: /* allocate_returning: %empty */ -#line 4326 "parser.y" +#line 4335 "parser.y" { yyval = NULL; } -#line 9209 "parser.c" +#line 9268 "parser.c" break; case 784: /* allocate_returning: RETURNING target_x */ -#line 4327 "parser.y" +#line 4336 "parser.y" { yyval = yyvsp[0]; } -#line 9215 "parser.c" +#line 9274 "parser.c" break; case 785: /* alter_statement: ALTER alter_options */ -#line 4337 "parser.y" +#line 4346 "parser.y" { cb_error (_("ALTER statement is obsolete and unsupported")); } -#line 9223 "parser.c" +#line 9282 "parser.c" break; case 790: /* $@41: %empty */ -#line 4355 "parser.y" +#line 4364 "parser.y" { BEGIN_STATEMENT ("CALL", TERM_CALL); } -#line 9229 "parser.c" +#line 9288 "parser.c" break; case 791: /* call_statement: CALL $@41 id_or_lit_or_func call_using call_returning call_on_exception call_not_on_exception end_call */ -#line 4359 "parser.y" +#line 4368 "parser.y" { cb_emit_call (yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1]); } -#line 9237 "parser.c" +#line 9296 "parser.c" break; case 792: /* call_using: %empty */ -#line 4365 "parser.y" +#line 4374 "parser.y" { yyval = NULL; } -#line 9243 "parser.c" +#line 9302 "parser.c" break; case 793: /* $@42: %empty */ -#line 4367 "parser.y" +#line 4376 "parser.y" { call_mode = CB_CALL_BY_REFERENCE; size_mode = CB_SIZE_4; } -#line 9252 "parser.c" +#line 9311 "parser.c" break; case 794: /* call_using: USING $@42 call_param_list */ -#line 4371 "parser.y" +#line 4380 "parser.y" { yyval = yyvsp[0]; } -#line 9258 "parser.c" +#line 9317 "parser.c" break; case 795: /* call_param_list: call_param */ -#line 4375 "parser.y" +#line 4384 "parser.y" { yyval = yyvsp[0]; } -#line 9264 "parser.c" +#line 9323 "parser.c" break; case 796: /* call_param_list: call_param_list call_param */ -#line 4377 "parser.y" +#line 4386 "parser.y" { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); } -#line 9270 "parser.c" +#line 9329 "parser.c" break; case 797: /* call_param: call_type OMITTED */ -#line 4382 "parser.y" +#line 4391 "parser.y" { if (call_mode != CB_CALL_BY_REFERENCE) { cb_error (_("OMITTED only allowed with BY REFERENCE")); } yyval = cb_build_pair (cb_int (call_mode), cb_null); } -#line 9281 "parser.c" +#line 9340 "parser.c" break; case 798: /* call_param: call_type size_optional x */ -#line 4389 "parser.y" +#line 4398 "parser.y" { yyval = cb_build_pair (cb_int (call_mode), yyvsp[0]); CB_SIZES (yyval) = size_mode; } -#line 9290 "parser.c" +#line 9349 "parser.c" break; case 800: /* call_type: _by REFERENCE */ -#line 4398 "parser.y" +#line 4407 "parser.y" { call_mode = CB_CALL_BY_REFERENCE; } -#line 9298 "parser.c" +#line 9357 "parser.c" break; case 801: /* call_type: _by CONTENT */ -#line 4402 "parser.y" +#line 4411 "parser.y" { if (current_program->flag_chained) { cb_error (_("BY CONTENT not allowed in CHAINED program")); @@ -9306,11 +9365,11 @@ yyparse (void) call_mode = CB_CALL_BY_CONTENT; } } -#line 9310 "parser.c" +#line 9369 "parser.c" break; case 802: /* call_type: _by VALUE */ -#line 4410 "parser.y" +#line 4419 "parser.y" { if (current_program->flag_chained) { cb_error (_("BY VALUE not allowed in CHAINED program")); @@ -9318,236 +9377,236 @@ yyparse (void) call_mode = CB_CALL_BY_VALUE; } } -#line 9322 "parser.c" +#line 9381 "parser.c" break; case 803: /* call_returning: %empty */ -#line 4420 "parser.y" +#line 4429 "parser.y" { yyval = NULL; } -#line 9328 "parser.c" +#line 9387 "parser.c" break; case 804: /* call_returning: RETURNING identifier */ -#line 4421 "parser.y" +#line 4430 "parser.y" { yyval = yyvsp[0]; } -#line 9334 "parser.c" +#line 9393 "parser.c" break; case 805: /* call_returning: GIVING identifier */ -#line 4422 "parser.y" +#line 4431 "parser.y" { yyval = yyvsp[0]; } -#line 9340 "parser.c" +#line 9399 "parser.c" break; case 806: /* call_on_exception: %empty */ -#line 4427 "parser.y" +#line 4436 "parser.y" { yyval = NULL; } -#line 9348 "parser.c" +#line 9407 "parser.c" break; case 807: /* $@43: %empty */ -#line 4431 "parser.y" +#line 4440 "parser.y" { check_unreached = 0; } -#line 9356 "parser.c" +#line 9415 "parser.c" break; case 808: /* call_on_exception: exception_or_overflow $@43 statement_list */ -#line 4435 "parser.y" +#line 4444 "parser.y" { yyval = yyvsp[0]; } -#line 9364 "parser.c" +#line 9423 "parser.c" break; case 809: /* call_not_on_exception: %empty */ -#line 4442 "parser.y" +#line 4451 "parser.y" { yyval = NULL; } -#line 9372 "parser.c" +#line 9431 "parser.c" break; case 810: /* $@44: %empty */ -#line 4446 "parser.y" +#line 4455 "parser.y" { check_unreached = 0; } -#line 9380 "parser.c" +#line 9439 "parser.c" break; case 811: /* call_not_on_exception: not_exception_or_overflow $@44 statement_list */ -#line 4450 "parser.y" +#line 4459 "parser.y" { yyval = yyvsp[0]; } -#line 9388 "parser.c" +#line 9447 "parser.c" break; case 812: /* end_call: %empty */ -#line 4456 "parser.y" +#line 4465 "parser.y" { terminator_warning (TERM_CALL); } -#line 9394 "parser.c" +#line 9453 "parser.c" break; case 813: /* end_call: "END-CALL" */ -#line 4457 "parser.y" +#line 4466 "parser.y" { terminator_clear (TERM_CALL); } -#line 9400 "parser.c" +#line 9459 "parser.c" break; case 814: /* $@45: %empty */ -#line 4466 "parser.y" +#line 4475 "parser.y" { BEGIN_STATEMENT ("CANCEL", 0); } -#line 9406 "parser.c" +#line 9465 "parser.c" break; case 817: /* cancel_list: cancel_list id_or_lit */ -#line 4472 "parser.y" +#line 4481 "parser.y" { cb_emit_cancel (yyvsp[0]); } -#line 9414 "parser.c" +#line 9473 "parser.c" break; case 818: /* cancel_list: ALL */ -#line 4476 "parser.y" +#line 4485 "parser.y" { cb_emit_cancel_all (); } -#line 9422 "parser.c" +#line 9481 "parser.c" break; case 819: /* $@46: %empty */ -#line 4487 "parser.y" +#line 4496 "parser.y" { BEGIN_STATEMENT ("CLOSE", 0); } -#line 9428 "parser.c" +#line 9487 "parser.c" break; case 822: /* close_list: close_list file_name close_option */ -#line 4494 "parser.y" +#line 4503 "parser.y" { BEGIN_IMPLICIT_STATEMENT (yyvsp[-1]); if (yyvsp[-1] != cb_error_node) { cb_emit_close (yyvsp[-1], yyvsp[0]); } } -#line 9439 "parser.c" +#line 9498 "parser.c" break; case 823: /* close_option: %empty */ -#line 4503 "parser.y" +#line 4512 "parser.y" { yyval = cb_int (COB_CLOSE_NORMAL); } -#line 9445 "parser.c" +#line 9504 "parser.c" break; case 824: /* close_option: reel_or_unit */ -#line 4504 "parser.y" +#line 4513 "parser.y" { yyval = cb_int (COB_CLOSE_UNIT); } -#line 9451 "parser.c" +#line 9510 "parser.c" break; case 825: /* close_option: reel_or_unit _for REMOVAL */ -#line 4505 "parser.y" +#line 4514 "parser.y" { yyval = cb_int (COB_CLOSE_UNIT_REMOVAL); } -#line 9457 "parser.c" +#line 9516 "parser.c" break; case 826: /* close_option: _with NO REWIND */ -#line 4506 "parser.y" +#line 4515 "parser.y" { yyval = cb_int (COB_CLOSE_NO_REWIND); } -#line 9463 "parser.c" +#line 9522 "parser.c" break; case 827: /* close_option: _with LOCK */ -#line 4507 "parser.y" +#line 4516 "parser.y" { yyval = cb_int (COB_CLOSE_LOCK); } -#line 9469 "parser.c" +#line 9528 "parser.c" break; case 830: /* $@47: %empty */ -#line 4518 "parser.y" +#line 4527 "parser.y" { BEGIN_STATEMENT ("COMPUTE", TERM_COMPUTE); } -#line 9475 "parser.c" +#line 9534 "parser.c" break; case 832: /* compute_body: arithmetic_x_list comp_equal expr on_size_error */ -#line 4525 "parser.y" +#line 4534 "parser.y" { cb_emit_arithmetic (yyvsp[-3], 0, yyvsp[-1]); } -#line 9483 "parser.c" +#line 9542 "parser.c" break; case 833: /* end_compute: %empty */ -#line 4531 "parser.y" +#line 4540 "parser.y" { terminator_warning (TERM_COMPUTE); } -#line 9489 "parser.c" +#line 9548 "parser.c" break; case 834: /* end_compute: "END-COMPUTE" */ -#line 4532 "parser.y" +#line 4541 "parser.y" { terminator_clear (TERM_COMPUTE); } -#line 9495 "parser.c" +#line 9554 "parser.c" break; case 837: /* commit_statement: COMMIT */ -#line 4543 "parser.y" +#line 4552 "parser.y" { BEGIN_STATEMENT ("COMMIT", 0); cb_emit_commit (); } -#line 9504 "parser.c" +#line 9563 "parser.c" break; case 838: /* continue_statement: CONTINUE */ -#line 4556 "parser.y" +#line 4565 "parser.y" { BEGIN_STATEMENT ("CONTINUE", 0); cb_emit_continue (); } -#line 9513 "parser.c" +#line 9572 "parser.c" break; case 839: /* $@48: %empty */ -#line 4568 "parser.y" +#line 4577 "parser.y" { BEGIN_STATEMENT ("DELETE", TERM_DELETE); } -#line 9519 "parser.c" +#line 9578 "parser.c" break; case 840: /* delete_statement: DELETE $@48 file_name _record opt_invalid_key end_delete */ -#line 4571 "parser.y" +#line 4580 "parser.y" { if (yyvsp[-3] != cb_error_node) { cb_emit_delete (yyvsp[-3]); } } -#line 9529 "parser.c" +#line 9588 "parser.c" break; case 841: /* end_delete: %empty */ -#line 4579 "parser.y" +#line 4588 "parser.y" { terminator_warning (TERM_DELETE); } -#line 9535 "parser.c" +#line 9594 "parser.c" break; case 842: /* end_delete: "END-DELETE" */ -#line 4580 "parser.y" +#line 4589 "parser.y" { terminator_clear (TERM_DELETE); } -#line 9541 "parser.c" +#line 9600 "parser.c" break; case 843: /* $@49: %empty */ -#line 4589 "parser.y" +#line 4598 "parser.y" { BEGIN_STATEMENT ("DELETE-FILE", 0); } -#line 9547 "parser.c" +#line 9606 "parser.c" break; case 844: /* delete_file_statement: DELETE $@49 "FILE" file_name_list */ -#line 4591 "parser.y" +#line 4600 "parser.y" { cb_tree l; for (l = yyvsp[0]; l; l = CB_CHAIN (l)) { @@ -9557,11 +9616,11 @@ yyparse (void) } } } -#line 9561 "parser.c" +#line 9620 "parser.c" break; case 845: /* $@50: %empty */ -#line 4609 "parser.y" +#line 4618 "parser.y" { BEGIN_STATEMENT ("DISPLAY", TERM_DISPLAY); dispattrs = 0; @@ -9569,277 +9628,277 @@ yyparse (void) bgc = NULL; scroll = NULL; } -#line 9573 "parser.c" +#line 9632 "parser.c" break; case 847: /* display_body: id_or_lit "UPON ENVIRONMENT-NAME" on_disp_exception */ -#line 4622 "parser.y" +#line 4631 "parser.y" { cb_emit_env_name (yyvsp[-2]); } -#line 9581 "parser.c" +#line 9640 "parser.c" break; case 848: /* display_body: id_or_lit "UPON ENVIRONMENT-VALUE" on_disp_exception */ -#line 4626 "parser.y" +#line 4635 "parser.y" { cb_emit_env_value (yyvsp[-2]); } -#line 9589 "parser.c" +#line 9648 "parser.c" break; case 849: /* display_body: id_or_lit "UPON ARGUMENT-NUMBER" on_disp_exception */ -#line 4630 "parser.y" +#line 4639 "parser.y" { cb_emit_arg_number (yyvsp[-2]); } -#line 9597 "parser.c" +#line 9656 "parser.c" break; case 850: /* display_body: id_or_lit "UPON COMMAND-LINE" on_disp_exception */ -#line 4634 "parser.y" +#line 4643 "parser.y" { cb_emit_command_line (yyvsp[-2]); } -#line 9605 "parser.c" +#line 9664 "parser.c" break; case 851: /* display_body: x_list opt_at_line_column with_clause on_disp_exception */ -#line 4638 "parser.y" +#line 4647 "parser.y" { cb_emit_display (yyvsp[-3], cb_int0, yyvsp[-1], yyvsp[-2], fgc, bgc, scroll, dispattrs); } -#line 9613 "parser.c" +#line 9672 "parser.c" break; case 852: /* display_body: x_list opt_at_line_column UPON mnemonic_name with_clause on_disp_exception */ -#line 4642 "parser.y" +#line 4651 "parser.y" { cb_emit_display_mnemonic (yyvsp[-5], yyvsp[-2], yyvsp[-1], yyvsp[-4], fgc, bgc, scroll, dispattrs); } -#line 9621 "parser.c" +#line 9680 "parser.c" break; case 853: /* display_body: x_list opt_at_line_column UPON "Identifier" with_clause on_disp_exception */ -#line 4646 "parser.y" +#line 4655 "parser.y" { cb_tree word = cb_build_display_upon_direct (yyvsp[-2]); cb_emit_display (yyvsp[-5], word, yyvsp[-1], yyvsp[-4], fgc, bgc, scroll, dispattrs); } -#line 9630 "parser.c" +#line 9689 "parser.c" break; case 854: /* display_body: x_list opt_at_line_column UPON PRINTER with_clause on_disp_exception */ -#line 4651 "parser.y" +#line 4660 "parser.y" { cb_emit_display (yyvsp[-5], cb_int0, yyvsp[-1], yyvsp[-4], fgc, bgc, scroll, dispattrs); } -#line 9638 "parser.c" +#line 9697 "parser.c" break; case 855: /* display_body: x_list opt_at_line_column UPON CRT with_clause on_disp_exception */ -#line 4655 "parser.y" +#line 4664 "parser.y" { cb_emit_display (yyvsp[-5], cb_int0, yyvsp[-1], yyvsp[-4], fgc, bgc, scroll, dispattrs); } -#line 9646 "parser.c" +#line 9705 "parser.c" break; case 856: /* with_clause: %empty */ -#line 4661 "parser.y" +#line 4670 "parser.y" { yyval = cb_int1; } -#line 9652 "parser.c" +#line 9711 "parser.c" break; case 857: /* with_clause: _with "NO ADVANCING" */ -#line 4662 "parser.y" +#line 4671 "parser.y" { yyval = cb_int0; } -#line 9658 "parser.c" +#line 9717 "parser.c" break; case 858: /* with_clause: WITH disp_attrs */ -#line 4663 "parser.y" +#line 4672 "parser.y" { yyval = cb_int1; } -#line 9664 "parser.c" +#line 9723 "parser.c" break; case 861: /* disp_attr: BELL */ -#line 4673 "parser.y" +#line 4682 "parser.y" { dispattrs |= COB_SCREEN_BELL; } -#line 9670 "parser.c" +#line 9729 "parser.c" break; case 862: /* disp_attr: BLINK */ -#line 4674 "parser.y" +#line 4683 "parser.y" { dispattrs |= COB_SCREEN_BLINK; } -#line 9676 "parser.c" +#line 9735 "parser.c" break; case 863: /* disp_attr: ERASE EOL */ -#line 4675 "parser.y" +#line 4684 "parser.y" { dispattrs |= COB_SCREEN_ERASE_EOL; } -#line 9682 "parser.c" +#line 9741 "parser.c" break; case 864: /* disp_attr: ERASE EOS */ -#line 4676 "parser.y" +#line 4685 "parser.y" { dispattrs |= COB_SCREEN_ERASE_EOS; } -#line 9688 "parser.c" +#line 9747 "parser.c" break; case 865: /* disp_attr: HIGHLIGHT */ -#line 4677 "parser.y" +#line 4686 "parser.y" { dispattrs |= COB_SCREEN_HIGHLIGHT; } -#line 9694 "parser.c" +#line 9753 "parser.c" break; case 866: /* disp_attr: LOWLIGHT */ -#line 4678 "parser.y" +#line 4687 "parser.y" { dispattrs |= COB_SCREEN_LOWLIGHT; } -#line 9700 "parser.c" +#line 9759 "parser.c" break; case 867: /* disp_attr: "REVERSE-VIDEO" */ -#line 4679 "parser.y" +#line 4688 "parser.y" { dispattrs |= COB_SCREEN_REVERSE; } -#line 9706 "parser.c" +#line 9765 "parser.c" break; case 868: /* disp_attr: UNDERLINE */ -#line 4680 "parser.y" +#line 4689 "parser.y" { dispattrs |= COB_SCREEN_UNDERLINE; } -#line 9712 "parser.c" +#line 9771 "parser.c" break; case 869: /* disp_attr: OVERLINE */ -#line 4681 "parser.y" +#line 4690 "parser.y" { dispattrs |= COB_SCREEN_OVERLINE; } -#line 9718 "parser.c" +#line 9777 "parser.c" break; case 870: /* disp_attr: "FOREGROUND-COLOR" _is num_id_or_lit */ -#line 4683 "parser.y" +#line 4692 "parser.y" { fgc = yyvsp[0]; } -#line 9726 "parser.c" +#line 9785 "parser.c" break; case 871: /* disp_attr: "BACKGROUND-COLOR" _is num_id_or_lit */ -#line 4687 "parser.y" +#line 4696 "parser.y" { bgc = yyvsp[0]; } -#line 9734 "parser.c" +#line 9793 "parser.c" break; case 872: /* disp_attr: SCROLL UP _opt_scroll_lines */ -#line 4691 "parser.y" +#line 4700 "parser.y" { scroll = yyvsp[0]; } -#line 9742 "parser.c" +#line 9801 "parser.c" break; case 873: /* disp_attr: SCROLL DOWN _opt_scroll_lines */ -#line 4695 "parser.y" +#line 4704 "parser.y" { dispattrs |= COB_SCREEN_SCROLL_DOWN; scroll = yyvsp[0]; } -#line 9751 "parser.c" +#line 9810 "parser.c" break; case 874: /* disp_attr: "BLANK-LINE" */ -#line 4699 "parser.y" +#line 4708 "parser.y" { dispattrs |= COB_SCREEN_BLANK_LINE; } -#line 9757 "parser.c" +#line 9816 "parser.c" break; case 875: /* disp_attr: "BLANK-SCREEN" */ -#line 4700 "parser.y" +#line 4709 "parser.y" { dispattrs |= COB_SCREEN_BLANK_SCREEN; } -#line 9763 "parser.c" +#line 9822 "parser.c" break; case 876: /* end_display: %empty */ -#line 4704 "parser.y" +#line 4713 "parser.y" { terminator_warning (TERM_DISPLAY); } -#line 9769 "parser.c" +#line 9828 "parser.c" break; case 877: /* end_display: "END-DISPLAY" */ -#line 4705 "parser.y" +#line 4714 "parser.y" { terminator_clear (TERM_DISPLAY); } -#line 9775 "parser.c" +#line 9834 "parser.c" break; case 878: /* $@51: %empty */ -#line 4714 "parser.y" +#line 4723 "parser.y" { BEGIN_STATEMENT ("DIVIDE", TERM_DIVIDE); } -#line 9781 "parser.c" +#line 9840 "parser.c" break; case 880: /* divide_body: x INTO arithmetic_x_list on_size_error */ -#line 4721 "parser.y" +#line 4730 "parser.y" { cb_emit_arithmetic (yyvsp[-1], '/', yyvsp[-3]); } -#line 9789 "parser.c" +#line 9848 "parser.c" break; case 881: /* divide_body: x INTO x GIVING arithmetic_x_list on_size_error */ -#line 4725 "parser.y" +#line 4734 "parser.y" { cb_emit_arithmetic (yyvsp[-1], 0, cb_build_binary_op (yyvsp[-3], '/', yyvsp[-5])); } -#line 9797 "parser.c" +#line 9856 "parser.c" break; case 882: /* divide_body: x BY x GIVING arithmetic_x_list on_size_error */ -#line 4729 "parser.y" +#line 4738 "parser.y" { cb_emit_arithmetic (yyvsp[-1], 0, cb_build_binary_op (yyvsp[-5], '/', yyvsp[-3])); } -#line 9805 "parser.c" +#line 9864 "parser.c" break; case 883: /* divide_body: x INTO x GIVING arithmetic_x REMAINDER arithmetic_x on_size_error */ -#line 4733 "parser.y" +#line 4742 "parser.y" { cb_emit_divide (yyvsp[-5], yyvsp[-7], yyvsp[-3], yyvsp[-1]); } -#line 9813 "parser.c" +#line 9872 "parser.c" break; case 884: /* divide_body: x BY x GIVING arithmetic_x REMAINDER arithmetic_x on_size_error */ -#line 4737 "parser.y" +#line 4746 "parser.y" { cb_emit_divide (yyvsp[-7], yyvsp[-5], yyvsp[-3], yyvsp[-1]); } -#line 9821 "parser.c" +#line 9880 "parser.c" break; case 885: /* end_divide: %empty */ -#line 4743 "parser.y" +#line 4752 "parser.y" { terminator_warning (TERM_DIVIDE); } -#line 9827 "parser.c" +#line 9886 "parser.c" break; case 886: /* end_divide: "END-DIVIDE" */ -#line 4744 "parser.y" +#line 4753 "parser.y" { terminator_clear (TERM_DIVIDE); } -#line 9833 "parser.c" +#line 9892 "parser.c" break; case 887: /* $@52: %empty */ -#line 4753 "parser.y" +#line 4762 "parser.y" { BEGIN_STATEMENT ("ENTRY", 0); } -#line 9839 "parser.c" +#line 9898 "parser.c" break; case 888: /* entry_statement: ENTRY $@52 "Literal" call_using */ -#line 4755 "parser.y" +#line 4764 "parser.y" { if (current_program->nested_level) { cb_error (_("ENTRY is invalid in nested program")); @@ -9851,11 +9910,11 @@ yyparse (void) } check_unreached = 0; } -#line 9855 "parser.c" +#line 9914 "parser.c" break; case 889: /* $@53: %empty */ -#line 4775 "parser.y" +#line 4784 "parser.y" { BEGIN_STATEMENT ("EVALUATE", TERM_EVALUATE); eval_level++; @@ -9865,37 +9924,37 @@ yyparse (void) eval_inc = 0; eval_inc2 = 0; } -#line 9869 "parser.c" +#line 9928 "parser.c" break; case 890: /* evaluate_statement: EVALUATE $@53 evaluate_subject_list evaluate_condition_list end_evaluate */ -#line 4786 "parser.y" +#line 4795 "parser.y" { cb_emit_evaluate (yyvsp[-2], yyvsp[-1]); eval_level--; } -#line 9878 "parser.c" +#line 9937 "parser.c" break; case 891: /* evaluate_subject_list: evaluate_subject */ -#line 4793 "parser.y" +#line 4802 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 9884 "parser.c" +#line 9943 "parser.c" break; case 892: /* evaluate_subject_list: evaluate_subject_list _also evaluate_subject */ -#line 4796 "parser.y" +#line 4805 "parser.y" { if (!cb_allow_missing_also_clause_in_evaluate && yyvsp[-1] != cb_int1) { cb_error (_("Invalid expression")); } yyval = cb_list_add (yyvsp[-2], yyvsp[0]); } -#line 9895 "parser.c" +#line 9954 "parser.c" break; case 893: /* evaluate_subject: expr */ -#line 4806 "parser.y" +#line 4815 "parser.y" { yyval = yyvsp[0]; if (CB_REFERENCE_P (yyvsp[0])) { @@ -9904,29 +9963,29 @@ yyparse (void) eval_check[eval_level][eval_inc++] = 1; } } -#line 9908 "parser.c" +#line 9967 "parser.c" break; case 894: /* evaluate_subject: "TRUE" */ -#line 4815 "parser.y" +#line 4824 "parser.y" { yyval = cb_true; eval_check[eval_level][eval_inc++] = 2; } -#line 9917 "parser.c" +#line 9976 "parser.c" break; case 895: /* evaluate_subject: "FALSE" */ -#line 4820 "parser.y" +#line 4829 "parser.y" { yyval = cb_false; eval_check[eval_level][eval_inc++] = 3; } -#line 9926 "parser.c" +#line 9985 "parser.c" break; case 896: /* evaluate_condition_list: evaluate_case_list evaluate_other */ -#line 4828 "parser.y" +#line 4837 "parser.y" { yyval = yyvsp[-1]; if (yyvsp[0]) { @@ -9952,31 +10011,31 @@ yyparse (void) yyval = cb_list_add (yyval, yyvsp[0]); } } -#line 9956 "parser.c" +#line 10015 "parser.c" break; case 897: /* evaluate_case_list: evaluate_case */ -#line 4856 "parser.y" +#line 4865 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 9962 "parser.c" +#line 10021 "parser.c" break; case 898: /* evaluate_case_list: evaluate_case_list evaluate_case */ -#line 4858 "parser.y" +#line 4867 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 9968 "parser.c" +#line 10027 "parser.c" break; case 899: /* $@54: %empty */ -#line 4863 "parser.y" +#line 4872 "parser.y" { check_unreached = 0; } -#line 9976 "parser.c" +#line 10035 "parser.c" break; case 900: /* evaluate_case: evaluate_when_list $@54 statement_list */ -#line 4867 "parser.y" +#line 4876 "parser.y" { if (!cb_allow_empty_imperative_statement && yyvsp[0] == NULL) { cb_error (_("syntax error")); @@ -9984,27 +10043,27 @@ yyparse (void) yyval = cb_cons (yyvsp[0], yyvsp[-2]); eval_inc2 = 0; } -#line 9988 "parser.c" +#line 10047 "parser.c" break; case 901: /* evaluate_other: %empty */ -#line 4878 "parser.y" +#line 4887 "parser.y" { yyval = NULL; } -#line 9996 "parser.c" +#line 10055 "parser.c" break; case 902: /* $@55: %empty */ -#line 4882 "parser.y" +#line 4891 "parser.y" { check_unreached = 0; } -#line 10004 "parser.c" +#line 10063 "parser.c" break; case 903: /* evaluate_other: "WHEN OTHER" $@55 statement_list */ -#line 4886 "parser.y" +#line 4895 "parser.y" { if (!cb_allow_empty_imperative_statement && yyvsp[0] == NULL) { cb_error (_("syntax error")); @@ -10012,40 +10071,40 @@ yyparse (void) yyval = cb_cons (yyvsp[0], NULL); eval_inc2 = 0; } -#line 10016 "parser.c" +#line 10075 "parser.c" break; case 904: /* evaluate_when_list: WHEN evaluate_object_list */ -#line 4896 "parser.y" +#line 4905 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 10022 "parser.c" +#line 10081 "parser.c" break; case 905: /* evaluate_when_list: evaluate_when_list WHEN evaluate_object_list */ -#line 4898 "parser.y" +#line 4907 "parser.y" { yyval = cb_list_add (yyvsp[-2], yyvsp[0]); } -#line 10028 "parser.c" +#line 10087 "parser.c" break; case 906: /* evaluate_object_list: evaluate_object */ -#line 4902 "parser.y" +#line 4911 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 10034 "parser.c" +#line 10093 "parser.c" break; case 907: /* evaluate_object_list: evaluate_object_list _also evaluate_object */ -#line 4905 "parser.y" +#line 4914 "parser.y" { if (!cb_allow_missing_also_clause_in_evaluate && yyvsp[-1] != cb_int1) { cb_error (_("Invalid expression")); } yyval = cb_list_add (yyvsp[-2], yyvsp[0]); } -#line 10045 "parser.c" +#line 10104 "parser.c" break; case 908: /* evaluate_object: partial_expr opt_evaluate_thru_expr */ -#line 4915 "parser.y" +#line 4924 "parser.y" { cb_tree not; cb_tree e1; @@ -10074,65 +10133,65 @@ yyparse (void) eval_inc2++; } } -#line 10078 "parser.c" +#line 10137 "parser.c" break; case 909: /* evaluate_object: ANY */ -#line 4943 "parser.y" +#line 4952 "parser.y" { yyval = cb_any; eval_inc2++; } -#line 10084 "parser.c" +#line 10143 "parser.c" break; case 910: /* evaluate_object: "TRUE" */ -#line 4944 "parser.y" +#line 4953 "parser.y" { yyval = cb_true; eval_inc2++; } -#line 10090 "parser.c" +#line 10149 "parser.c" break; case 911: /* evaluate_object: "FALSE" */ -#line 4945 "parser.y" +#line 4954 "parser.y" { yyval = cb_false; eval_inc2++; } -#line 10096 "parser.c" +#line 10155 "parser.c" break; case 912: /* opt_evaluate_thru_expr: %empty */ -#line 4948 "parser.y" +#line 4957 "parser.y" { yyval = NULL; } -#line 10102 "parser.c" +#line 10161 "parser.c" break; case 913: /* opt_evaluate_thru_expr: THRU expr */ -#line 4949 "parser.y" +#line 4958 "parser.y" { yyval = yyvsp[0]; } -#line 10108 "parser.c" +#line 10167 "parser.c" break; case 914: /* end_evaluate: %empty */ -#line 4953 "parser.y" +#line 4962 "parser.y" { terminator_warning (TERM_EVALUATE); } -#line 10114 "parser.c" +#line 10173 "parser.c" break; case 915: /* end_evaluate: "END-EVALUATE" */ -#line 4954 "parser.y" +#line 4963 "parser.y" { terminator_clear (TERM_EVALUATE); } -#line 10120 "parser.c" +#line 10179 "parser.c" break; case 916: /* $@56: %empty */ -#line 4963 "parser.y" +#line 4972 "parser.y" { BEGIN_STATEMENT ("EXIT", 0); } -#line 10126 "parser.c" +#line 10185 "parser.c" break; case 918: /* exit_body: %empty */ -#line 4968 "parser.y" +#line 4977 "parser.y" { /* nothing */ } -#line 10132 "parser.c" +#line 10191 "parser.c" break; case 919: /* exit_body: PROGRAM */ -#line 4970 "parser.y" +#line 4979 "parser.y" { if (in_declaratives && use_global_ind) { cb_error (_("EXIT PROGRAM is not allowed within a USE GLOBAL procedure")); @@ -10140,11 +10199,11 @@ yyparse (void) check_unreached = 1; cb_emit_exit (0); } -#line 10144 "parser.c" +#line 10203 "parser.c" break; case 920: /* exit_body: PERFORM */ -#line 4978 "parser.y" +#line 4987 "parser.y" { if (!perform_stack) { cb_error (_("EXIT PERFORM is only valid with inline PERFORM")); @@ -10152,11 +10211,11 @@ yyparse (void) cb_emit_java_break (); } } -#line 10156 "parser.c" +#line 10215 "parser.c" break; case 921: /* exit_body: PERFORM CYCLE */ -#line 4986 "parser.y" +#line 4995 "parser.y" { if (!perform_stack) { cb_error (_("EXIT PERFORM is only valid with inline PERFORM")); @@ -10164,11 +10223,11 @@ yyparse (void) cb_emit_java_continue (); } } -#line 10168 "parser.c" +#line 10227 "parser.c" break; case 922: /* exit_body: SECTION */ -#line 4994 "parser.y" +#line 5003 "parser.y" { cb_tree plabel; char name[64]; @@ -10186,11 +10245,11 @@ yyparse (void) cb_emit_goto (cb_list_init (current_section->exit_label_ref), NULL); } } -#line 10190 "parser.c" +#line 10249 "parser.c" break; case 923: /* exit_body: PARAGRAPH */ -#line 5012 "parser.y" +#line 5021 "parser.y" { cb_tree plabel; char name[64]; @@ -10208,461 +10267,461 @@ yyparse (void) cb_emit_goto (cb_list_init (current_paragraph->exit_label_ref), NULL); } } -#line 10212 "parser.c" +#line 10271 "parser.c" break; case 924: /* $@57: %empty */ -#line 5036 "parser.y" +#line 5045 "parser.y" { BEGIN_STATEMENT ("FREE", 0); } -#line 10218 "parser.c" +#line 10277 "parser.c" break; case 925: /* free_statement: FREE $@57 target_x_list */ -#line 5038 "parser.y" +#line 5047 "parser.y" { cb_emit_free (yyvsp[0]); } -#line 10226 "parser.c" +#line 10285 "parser.c" break; case 926: /* $@58: %empty */ -#line 5049 "parser.y" +#line 5058 "parser.y" { BEGIN_STATEMENT ("GENERATE", 0); } -#line 10232 "parser.c" +#line 10291 "parser.c" break; case 927: /* generate_statement: GENERATE $@58 identifier */ -#line 5051 "parser.y" +#line 5060 "parser.y" { PENDING("GENERATE"); } -#line 10240 "parser.c" +#line 10299 "parser.c" break; case 928: /* $@59: %empty */ -#line 5062 "parser.y" +#line 5071 "parser.y" { BEGIN_STATEMENT ("GO TO", 0); } -#line 10246 "parser.c" +#line 10305 "parser.c" break; case 929: /* goto_statement: GO _to $@59 procedure_name_list goto_depending */ -#line 5064 "parser.y" +#line 5073 "parser.y" { cb_emit_goto (yyvsp[-1], yyvsp[0]); } -#line 10254 "parser.c" +#line 10313 "parser.c" break; case 930: /* goto_depending: %empty */ -#line 5071 "parser.y" +#line 5080 "parser.y" { check_unreached = 1; yyval = NULL; } -#line 10263 "parser.c" +#line 10322 "parser.c" break; case 931: /* goto_depending: DEPENDING _on identifier */ -#line 5076 "parser.y" +#line 5085 "parser.y" { check_unreached = 0; yyval = yyvsp[0]; } -#line 10272 "parser.c" +#line 10331 "parser.c" break; case 932: /* $@60: %empty */ -#line 5088 "parser.y" +#line 5097 "parser.y" { BEGIN_STATEMENT ("GOBACK", 0); } -#line 10278 "parser.c" +#line 10337 "parser.c" break; case 933: /* goback_statement: GOBACK $@60 */ -#line 5089 "parser.y" +#line 5098 "parser.y" { check_unreached = 1; cb_emit_exit (1); } -#line 10287 "parser.c" +#line 10346 "parser.c" break; case 934: /* $@61: %empty */ -#line 5101 "parser.y" +#line 5110 "parser.y" { BEGIN_STATEMENT ("IF", TERM_IF); } -#line 10293 "parser.c" +#line 10352 "parser.c" break; case 935: /* $@62: %empty */ -#line 5103 "parser.y" +#line 5112 "parser.y" { check_unreached = 0; } -#line 10301 "parser.c" +#line 10360 "parser.c" break; case 936: /* if_statement: IF $@61 condition _then $@62 statement_list if_else_sentence end_if */ -#line 5108 "parser.y" +#line 5117 "parser.y" { if (!cb_allow_empty_imperative_statement && yyvsp[-2] == NULL) { cb_error (_("syntax error")); } cb_emit_if (yyvsp[-5], yyvsp[-2], yyvsp[-1]); } -#line 10312 "parser.c" +#line 10371 "parser.c" break; case 938: /* if_else_sentence: %empty */ -#line 5119 "parser.y" +#line 5128 "parser.y" { yyval = NULL; } -#line 10320 "parser.c" +#line 10379 "parser.c" break; case 939: /* $@63: %empty */ -#line 5123 "parser.y" +#line 5132 "parser.y" { check_unreached = 0; } -#line 10328 "parser.c" +#line 10387 "parser.c" break; case 940: /* if_else_sentence: ELSE $@63 statement_list */ -#line 5127 "parser.y" +#line 5136 "parser.y" { if (!cb_allow_empty_imperative_statement && yyvsp[0] == NULL) { cb_error (_("syntax error")); } yyval = yyvsp[0]; } -#line 10339 "parser.c" +#line 10398 "parser.c" break; case 941: /* end_if: %empty */ -#line 5136 "parser.y" +#line 5145 "parser.y" { terminator_warning (TERM_IF); } -#line 10345 "parser.c" +#line 10404 "parser.c" break; case 942: /* end_if: "END-IF" */ -#line 5137 "parser.y" +#line 5146 "parser.y" { terminator_clear (TERM_IF); } -#line 10351 "parser.c" +#line 10410 "parser.c" break; case 943: /* $@64: %empty */ -#line 5146 "parser.y" +#line 5155 "parser.y" { BEGIN_STATEMENT ("INITIALIZE", 0); } -#line 10357 "parser.c" +#line 10416 "parser.c" break; case 944: /* initialize_statement: INITIALIZE $@64 target_x_list initialize_filler initialize_value initialize_replacing initialize_default */ -#line 5148 "parser.y" +#line 5157 "parser.y" { cb_emit_initialize (yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0]); } -#line 10365 "parser.c" +#line 10424 "parser.c" break; case 945: /* initialize_filler: %empty */ -#line 5154 "parser.y" +#line 5163 "parser.y" { yyval = NULL; } -#line 10371 "parser.c" +#line 10430 "parser.c" break; case 946: /* initialize_filler: _with FILLER */ -#line 5155 "parser.y" +#line 5164 "parser.y" { yyval = cb_true; } -#line 10377 "parser.c" +#line 10436 "parser.c" break; case 947: /* initialize_value: %empty */ -#line 5159 "parser.y" +#line 5168 "parser.y" { yyval = NULL; } -#line 10383 "parser.c" +#line 10442 "parser.c" break; case 948: /* initialize_value: ALL _to VALUE */ -#line 5160 "parser.y" +#line 5169 "parser.y" { yyval = cb_true; } -#line 10389 "parser.c" +#line 10448 "parser.c" break; case 949: /* initialize_value: initialize_category _to VALUE */ -#line 5161 "parser.y" +#line 5170 "parser.y" { yyval = yyvsp[-2]; } -#line 10395 "parser.c" +#line 10454 "parser.c" break; case 950: /* initialize_replacing: %empty */ -#line 5165 "parser.y" +#line 5174 "parser.y" { yyval = NULL; } -#line 10401 "parser.c" +#line 10460 "parser.c" break; case 951: /* initialize_replacing: REPLACING initialize_replacing_list */ -#line 5167 "parser.y" +#line 5176 "parser.y" { yyval = yyvsp[0]; } -#line 10407 "parser.c" +#line 10466 "parser.c" break; case 952: /* initialize_replacing_list: initialize_replacing_item */ -#line 5171 "parser.y" +#line 5180 "parser.y" { yyval = yyvsp[0]; } -#line 10413 "parser.c" +#line 10472 "parser.c" break; case 953: /* initialize_replacing_list: initialize_replacing_list initialize_replacing_item */ -#line 5173 "parser.y" +#line 5182 "parser.y" { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); } -#line 10419 "parser.c" +#line 10478 "parser.c" break; case 954: /* initialize_replacing_item: initialize_category _data BY x */ -#line 5177 "parser.y" +#line 5186 "parser.y" { yyval = cb_build_pair (yyvsp[-3], yyvsp[0]); } -#line 10425 "parser.c" +#line 10484 "parser.c" break; case 955: /* initialize_category: ALPHABETIC */ -#line 5181 "parser.y" +#line 5190 "parser.y" { yyval = cb_int (CB_CATEGORY_ALPHABETIC); } -#line 10431 "parser.c" +#line 10490 "parser.c" break; case 956: /* initialize_category: ALPHANUMERIC */ -#line 5182 "parser.y" +#line 5191 "parser.y" { yyval = cb_int (CB_CATEGORY_ALPHANUMERIC); } -#line 10437 "parser.c" +#line 10496 "parser.c" break; case 957: /* initialize_category: NUMERIC */ -#line 5183 "parser.y" +#line 5192 "parser.y" { yyval = cb_int (CB_CATEGORY_NUMERIC); } -#line 10443 "parser.c" +#line 10502 "parser.c" break; case 958: /* initialize_category: "ALPHANUMERIC-EDITED" */ -#line 5184 "parser.y" +#line 5193 "parser.y" { yyval = cb_int (CB_CATEGORY_ALPHANUMERIC_EDITED); } -#line 10449 "parser.c" +#line 10508 "parser.c" break; case 959: /* initialize_category: "NUMERIC-EDITED" */ -#line 5185 "parser.y" +#line 5194 "parser.y" { yyval = cb_int (CB_CATEGORY_NUMERIC_EDITED); } -#line 10455 "parser.c" +#line 10514 "parser.c" break; case 960: /* initialize_category: NATIONAL */ -#line 5186 "parser.y" +#line 5195 "parser.y" { yyval = cb_int (CB_CATEGORY_NATIONAL); } -#line 10461 "parser.c" +#line 10520 "parser.c" break; case 961: /* initialize_category: "NATIONAL-EDITED" */ -#line 5187 "parser.y" +#line 5196 "parser.y" { yyval = cb_int (CB_CATEGORY_NATIONAL_EDITED); } -#line 10467 "parser.c" +#line 10526 "parser.c" break; case 962: /* initialize_default: %empty */ -#line 5191 "parser.y" +#line 5200 "parser.y" { yyval = NULL; } -#line 10473 "parser.c" +#line 10532 "parser.c" break; case 963: /* initialize_default: DEFAULT */ -#line 5192 "parser.y" +#line 5201 "parser.y" { yyval = cb_true; } -#line 10479 "parser.c" +#line 10538 "parser.c" break; case 964: /* $@65: %empty */ -#line 5201 "parser.y" +#line 5210 "parser.y" { BEGIN_STATEMENT ("INITIATE", 0); } -#line 10485 "parser.c" +#line 10544 "parser.c" break; case 965: /* initiate_statement: INITIATE $@65 identifier_list */ -#line 5203 "parser.y" +#line 5212 "parser.y" { PENDING("INITIATE"); } -#line 10493 "parser.c" +#line 10552 "parser.c" break; case 966: /* $@66: %empty */ -#line 5214 "parser.y" +#line 5223 "parser.y" { BEGIN_STATEMENT ("INSPECT", 0); sending_id = 0; inspect_keyword = 0; } -#line 10503 "parser.c" +#line 10562 "parser.c" break; case 968: /* send_identifier: identifier */ -#line 5223 "parser.y" +#line 5232 "parser.y" { save_tree_1 = yyvsp[0]; sending_id = 0; } -#line 10509 "parser.c" +#line 10568 "parser.c" break; case 969: /* send_identifier: literal */ -#line 5224 "parser.y" +#line 5233 "parser.y" { save_tree_1 = yyvsp[0]; sending_id = 1; } -#line 10515 "parser.c" +#line 10574 "parser.c" break; case 970: /* send_identifier: function */ -#line 5225 "parser.y" +#line 5234 "parser.y" { save_tree_1 = yyvsp[0]; sending_id = 1; } -#line 10521 "parser.c" +#line 10580 "parser.c" break; case 973: /* inspect_item: inspect_tallying */ -#line 5234 "parser.y" +#line 5243 "parser.y" { cb_emit_inspect (save_tree_1, yyvsp[0], cb_int0, 0); } -#line 10527 "parser.c" +#line 10586 "parser.c" break; case 974: /* inspect_item: inspect_replacing */ -#line 5235 "parser.y" +#line 5244 "parser.y" { cb_emit_inspect (save_tree_1, yyvsp[0], cb_int1, 1); } -#line 10533 "parser.c" +#line 10592 "parser.c" break; case 975: /* inspect_item: inspect_converting */ -#line 5236 "parser.y" +#line 5245 "parser.y" { cb_emit_inspect (save_tree_1, yyvsp[0], cb_int0, 2); } -#line 10539 "parser.c" +#line 10598 "parser.c" break; case 976: /* $@67: %empty */ -#line 5242 "parser.y" +#line 5251 "parser.y" { cb_init_tarrying (); } -#line 10545 "parser.c" +#line 10604 "parser.c" break; case 977: /* inspect_tallying: TALLYING $@67 tallying_list */ -#line 5243 "parser.y" +#line 5252 "parser.y" { yyval = yyvsp[0]; } -#line 10551 "parser.c" +#line 10610 "parser.c" break; case 978: /* tallying_list: tallying_item */ -#line 5247 "parser.y" +#line 5256 "parser.y" { yyval = yyvsp[0]; } -#line 10557 "parser.c" +#line 10616 "parser.c" break; case 979: /* tallying_list: tallying_list tallying_item */ -#line 5248 "parser.y" +#line 5257 "parser.y" { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); } -#line 10563 "parser.c" +#line 10622 "parser.c" break; case 980: /* tallying_item: simple_value FOR */ -#line 5252 "parser.y" +#line 5261 "parser.y" { yyval = cb_build_tarrying_data (yyvsp[-1]); } -#line 10569 "parser.c" +#line 10628 "parser.c" break; case 981: /* tallying_item: CHARACTERS inspect_region */ -#line 5253 "parser.y" +#line 5262 "parser.y" { yyval = cb_build_tarrying_characters (yyvsp[0]); } -#line 10575 "parser.c" +#line 10634 "parser.c" break; case 982: /* tallying_item: ALL */ -#line 5254 "parser.y" +#line 5263 "parser.y" { yyval = cb_build_tarrying_all (); } -#line 10581 "parser.c" +#line 10640 "parser.c" break; case 983: /* tallying_item: LEADING */ -#line 5255 "parser.y" +#line 5264 "parser.y" { yyval = cb_build_tarrying_leading (); } -#line 10587 "parser.c" +#line 10646 "parser.c" break; case 984: /* tallying_item: TRAILING */ -#line 5256 "parser.y" +#line 5265 "parser.y" { yyval = cb_build_tarrying_trailing (); } -#line 10593 "parser.c" +#line 10652 "parser.c" break; case 985: /* tallying_item: simple_value inspect_region */ -#line 5257 "parser.y" +#line 5266 "parser.y" { yyval = cb_build_tarrying_value (yyvsp[-1], yyvsp[0]); } -#line 10599 "parser.c" +#line 10658 "parser.c" break; case 986: /* inspect_replacing: REPLACING replacing_list */ -#line 5263 "parser.y" +#line 5272 "parser.y" { yyval = yyvsp[0]; inspect_keyword = 0; } -#line 10605 "parser.c" +#line 10664 "parser.c" break; case 987: /* replacing_list: replacing_item */ -#line 5267 "parser.y" +#line 5276 "parser.y" { yyval = yyvsp[0]; } -#line 10611 "parser.c" +#line 10670 "parser.c" break; case 988: /* replacing_list: replacing_list replacing_item */ -#line 5268 "parser.y" +#line 5277 "parser.y" { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); } -#line 10617 "parser.c" +#line 10676 "parser.c" break; case 989: /* replacing_item: CHARACTERS BY simple_value inspect_region */ -#line 5273 "parser.y" +#line 5282 "parser.y" { yyval = cb_build_replacing_characters (yyvsp[-1], yyvsp[0], save_tree_1); inspect_keyword = 0; } -#line 10626 "parser.c" +#line 10685 "parser.c" break; case 990: /* replacing_item: rep_keyword replacing_region */ -#line 5277 "parser.y" +#line 5286 "parser.y" { yyval = yyvsp[0]; } -#line 10632 "parser.c" +#line 10691 "parser.c" break; case 991: /* rep_keyword: %empty */ -#line 5281 "parser.y" +#line 5290 "parser.y" { /* Nothing */ } -#line 10638 "parser.c" +#line 10697 "parser.c" break; case 992: /* rep_keyword: ALL */ -#line 5282 "parser.y" +#line 5291 "parser.y" { inspect_keyword = 1; } -#line 10644 "parser.c" +#line 10703 "parser.c" break; case 993: /* rep_keyword: LEADING */ -#line 5283 "parser.y" +#line 5292 "parser.y" { inspect_keyword = 2; } -#line 10650 "parser.c" +#line 10709 "parser.c" break; case 994: /* rep_keyword: FIRST */ -#line 5284 "parser.y" +#line 5293 "parser.y" { inspect_keyword = 3; } -#line 10656 "parser.c" +#line 10715 "parser.c" break; case 995: /* rep_keyword: TRAILING */ -#line 5285 "parser.y" +#line 5294 "parser.y" { inspect_keyword = 4; } -#line 10662 "parser.c" +#line 10721 "parser.c" break; case 996: /* replacing_region: simple_value BY simple_all_value inspect_region */ -#line 5290 "parser.y" +#line 5299 "parser.y" { switch (inspect_keyword) { case 1: @@ -10683,11 +10742,11 @@ yyparse (void) break; } } -#line 10687 "parser.c" +#line 10746 "parser.c" break; case 997: /* inspect_converting: CONVERTING simple_value TO simple_all_value inspect_region */ -#line 5316 "parser.y" +#line 5325 "parser.y" { if (cb_validate_inspect (save_tree_1, yyvsp[-3], yyvsp[-1]) < 0 ) { yyval = cb_error_node; @@ -10695,91 +10754,91 @@ yyparse (void) yyval = cb_build_converting (yyvsp[-3], yyvsp[-1], yyvsp[0]); } } -#line 10699 "parser.c" +#line 10758 "parser.c" break; case 998: /* inspect_region: %empty */ -#line 5328 "parser.y" +#line 5337 "parser.y" { yyval = cb_build_inspect_region_start (); } -#line 10705 "parser.c" +#line 10764 "parser.c" break; case 999: /* inspect_region: inspect_region before_or_after _initial x */ -#line 5330 "parser.y" +#line 5339 "parser.y" { yyval = cb_build_inspect_region (yyvsp[-3], yyvsp[-2], yyvsp[0]); } -#line 10711 "parser.c" +#line 10770 "parser.c" break; case 1002: /* $@68: %empty */ -#line 5341 "parser.y" +#line 5350 "parser.y" { BEGIN_STATEMENT ("MERGE", 0); } -#line 10717 "parser.c" +#line 10776 "parser.c" break; case 1004: /* $@69: %empty */ -#line 5351 "parser.y" +#line 5360 "parser.y" { BEGIN_STATEMENT ("MOVE", 0); } -#line 10723 "parser.c" +#line 10782 "parser.c" break; case 1006: /* move_body: x TO target_x_list */ -#line 5357 "parser.y" +#line 5366 "parser.y" { cb_emit_move (yyvsp[-2], yyvsp[0]); } -#line 10731 "parser.c" +#line 10790 "parser.c" break; case 1007: /* move_body: CORRESPONDING x TO target_x_list */ -#line 5361 "parser.y" +#line 5370 "parser.y" { cb_emit_move_corresponding (yyvsp[-2], yyvsp[0]); } -#line 10739 "parser.c" +#line 10798 "parser.c" break; case 1008: /* $@70: %empty */ -#line 5372 "parser.y" +#line 5381 "parser.y" { BEGIN_STATEMENT ("MULTIPLY", TERM_MULTIPLY); } -#line 10745 "parser.c" +#line 10804 "parser.c" break; case 1010: /* multiply_body: x BY arithmetic_x_list on_size_error */ -#line 5379 "parser.y" +#line 5388 "parser.y" { cb_emit_arithmetic (yyvsp[-1], '*', yyvsp[-3]); } -#line 10753 "parser.c" +#line 10812 "parser.c" break; case 1011: /* multiply_body: x BY x GIVING arithmetic_x_list on_size_error */ -#line 5383 "parser.y" +#line 5392 "parser.y" { cb_emit_arithmetic (yyvsp[-1], 0, cb_build_binary_op (yyvsp[-5], '*', yyvsp[-3])); } -#line 10761 "parser.c" +#line 10820 "parser.c" break; case 1012: /* end_multiply: %empty */ -#line 5389 "parser.y" +#line 5398 "parser.y" { terminator_warning (TERM_MULTIPLY); } -#line 10767 "parser.c" +#line 10826 "parser.c" break; case 1013: /* end_multiply: "END-MULTIPLY" */ -#line 5390 "parser.y" +#line 5399 "parser.y" { terminator_clear (TERM_MULTIPLY); } -#line 10773 "parser.c" +#line 10832 "parser.c" break; case 1014: /* $@71: %empty */ -#line 5399 "parser.y" +#line 5408 "parser.y" { BEGIN_STATEMENT ("OPEN", 0); } -#line 10779 "parser.c" +#line 10838 "parser.c" break; case 1017: /* open_list: open_list open_mode open_sharing file_name_list open_option */ -#line 5406 "parser.y" +#line 5415 "parser.y" { cb_tree l; for (l = yyvsp[-1]; l; l = CB_CHAIN (l)) { @@ -10789,217 +10848,217 @@ yyparse (void) } } } -#line 10793 "parser.c" +#line 10852 "parser.c" break; case 1018: /* open_mode: INPUT */ -#line 5418 "parser.y" +#line 5427 "parser.y" { yyval = cb_int (COB_OPEN_INPUT); } -#line 10799 "parser.c" +#line 10858 "parser.c" break; case 1019: /* open_mode: OUTPUT */ -#line 5419 "parser.y" +#line 5428 "parser.y" { yyval = cb_int (COB_OPEN_OUTPUT); } -#line 10805 "parser.c" +#line 10864 "parser.c" break; case 1020: /* open_mode: "I-O" */ -#line 5420 "parser.y" +#line 5429 "parser.y" { yyval = cb_int (COB_OPEN_I_O); } -#line 10811 "parser.c" +#line 10870 "parser.c" break; case 1021: /* open_mode: EXTEND */ -#line 5421 "parser.y" +#line 5430 "parser.y" { yyval = cb_int (COB_OPEN_EXTEND); } -#line 10817 "parser.c" +#line 10876 "parser.c" break; case 1022: /* open_sharing: %empty */ -#line 5425 "parser.y" +#line 5434 "parser.y" { yyval = NULL; } -#line 10823 "parser.c" +#line 10882 "parser.c" break; case 1023: /* open_sharing: SHARING _with sharing_option */ -#line 5426 "parser.y" +#line 5435 "parser.y" { yyval = yyvsp[0]; } -#line 10829 "parser.c" +#line 10888 "parser.c" break; case 1024: /* open_option: %empty */ -#line 5430 "parser.y" +#line 5439 "parser.y" { yyval = NULL; } -#line 10835 "parser.c" +#line 10894 "parser.c" break; case 1025: /* open_option: _with NO REWIND */ -#line 5431 "parser.y" +#line 5440 "parser.y" { yyval = NULL; } -#line 10841 "parser.c" +#line 10900 "parser.c" break; case 1026: /* open_option: _with LOCK */ -#line 5432 "parser.y" +#line 5441 "parser.y" { PENDING ("OPEN ... WITH LOCK"); } -#line 10847 "parser.c" +#line 10906 "parser.c" break; case 1027: /* $@72: %empty */ -#line 5444 "parser.y" +#line 5453 "parser.y" { BEGIN_STATEMENT ("PERFORM", TERM_PERFORM); } -#line 10853 "parser.c" +#line 10912 "parser.c" break; case 1029: /* perform_body: perform_procedure perform_option */ -#line 5450 "parser.y" +#line 5459 "parser.y" { cb_emit_perform (yyvsp[0], yyvsp[-1]); } -#line 10861 "parser.c" +#line 10920 "parser.c" break; case 1030: /* $@73: %empty */ -#line 5454 "parser.y" +#line 5463 "parser.y" { perform_stack = cb_cons (yyvsp[0], perform_stack); check_unreached = 0; } -#line 10870 "parser.c" +#line 10929 "parser.c" break; case 1031: /* perform_body: perform_option $@73 statement_list end_perform */ -#line 5459 "parser.y" +#line 5468 "parser.y" { perform_stack = CB_CHAIN (perform_stack); cb_emit_perform (yyvsp[-3], yyvsp[-1]); } -#line 10879 "parser.c" +#line 10938 "parser.c" break; case 1032: /* perform_body: perform_option "END-PERFORM" */ -#line 5464 "parser.y" +#line 5473 "parser.y" { cb_emit_perform (yyvsp[-1], NULL); } -#line 10887 "parser.c" +#line 10946 "parser.c" break; case 1033: /* end_perform: %empty */ -#line 5470 "parser.y" +#line 5479 "parser.y" { terminator_error (); } -#line 10893 "parser.c" +#line 10952 "parser.c" break; case 1034: /* end_perform: "END-PERFORM" */ -#line 5471 "parser.y" +#line 5480 "parser.y" { terminator_clear (TERM_PERFORM); } -#line 10899 "parser.c" +#line 10958 "parser.c" break; case 1035: /* perform_procedure: procedure_name */ -#line 5476 "parser.y" +#line 5485 "parser.y" { CB_REFERENCE (yyvsp[0])->length = cb_true; /* return from $1 */ yyval = cb_build_pair (yyvsp[0], yyvsp[0]); } -#line 10908 "parser.c" +#line 10967 "parser.c" break; case 1036: /* perform_procedure: procedure_name THRU procedure_name */ -#line 5481 "parser.y" +#line 5490 "parser.y" { CB_REFERENCE (yyvsp[0])->length = cb_true; /* return from $3 */ yyval = cb_build_pair (yyvsp[-2], yyvsp[0]); } -#line 10917 "parser.c" +#line 10976 "parser.c" break; case 1037: /* perform_option: %empty */ -#line 5489 "parser.y" +#line 5498 "parser.y" { yyval = cb_build_perform_once (NULL); } -#line 10925 "parser.c" +#line 10984 "parser.c" break; case 1038: /* perform_option: FOREVER */ -#line 5493 "parser.y" +#line 5502 "parser.y" { yyval = cb_build_perform_forever (NULL); } -#line 10933 "parser.c" +#line 10992 "parser.c" break; case 1039: /* perform_option: id_or_lit_or_func TIMES */ -#line 5497 "parser.y" +#line 5506 "parser.y" { yyval = cb_build_perform_times (yyvsp[-1]); current_program->loop_counter++; } -#line 10942 "parser.c" +#line 11001 "parser.c" break; case 1040: /* perform_option: perform_test UNTIL condition */ -#line 5502 "parser.y" +#line 5511 "parser.y" { cb_tree varying; varying = cb_list_init (cb_build_perform_varying (NULL, NULL, NULL, yyvsp[0])); yyval = cb_build_perform_until (yyvsp[-2], varying); } -#line 10953 "parser.c" +#line 11012 "parser.c" break; case 1041: /* perform_option: perform_test VARYING perform_varying_list */ -#line 5509 "parser.y" +#line 5518 "parser.y" { yyval = cb_build_perform_until (yyvsp[-2], yyvsp[0]); } -#line 10961 "parser.c" +#line 11020 "parser.c" break; case 1042: /* perform_test: %empty */ -#line 5515 "parser.y" +#line 5524 "parser.y" { yyval = CB_BEFORE; } -#line 10967 "parser.c" +#line 11026 "parser.c" break; case 1043: /* perform_test: _with TEST before_or_after */ -#line 5516 "parser.y" +#line 5525 "parser.y" { yyval = yyvsp[0]; } -#line 10973 "parser.c" +#line 11032 "parser.c" break; case 1044: /* perform_varying_list: perform_varying */ -#line 5520 "parser.y" +#line 5529 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 10979 "parser.c" +#line 11038 "parser.c" break; case 1045: /* perform_varying_list: perform_varying_list AFTER perform_varying */ -#line 5522 "parser.y" +#line 5531 "parser.y" { yyval = cb_list_add (yyvsp[-2], yyvsp[0]); } -#line 10985 "parser.c" +#line 11044 "parser.c" break; case 1046: /* perform_varying: identifier FROM x BY x UNTIL condition */ -#line 5527 "parser.y" +#line 5536 "parser.y" { yyval = cb_build_perform_varying (yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0]); } -#line 10993 "parser.c" +#line 11052 "parser.c" break; case 1047: /* $@74: %empty */ -#line 5538 "parser.y" +#line 5547 "parser.y" { BEGIN_STATEMENT ("READ", TERM_READ); } -#line 10999 "parser.c" +#line 11058 "parser.c" break; case 1048: /* read_statement: READ $@74 file_name flag_next _record read_into with_lock read_key read_handler end_read */ -#line 5541 "parser.y" +#line 5550 "parser.y" { if (yyvsp[-7] != cb_error_node) { if (cb_use_invalidkey_handler_on_status34 && @@ -11023,145 +11082,145 @@ yyparse (void) } } } -#line 11027 "parser.c" +#line 11086 "parser.c" break; case 1049: /* read_into: %empty */ -#line 5567 "parser.y" +#line 5576 "parser.y" { yyval = NULL; } -#line 11033 "parser.c" +#line 11092 "parser.c" break; case 1050: /* read_into: INTO identifier */ -#line 5568 "parser.y" +#line 5577 "parser.y" { yyval = yyvsp[0]; } -#line 11039 "parser.c" +#line 11098 "parser.c" break; case 1051: /* with_lock: %empty */ -#line 5572 "parser.y" +#line 5581 "parser.y" { yyval = NULL; } -#line 11045 "parser.c" +#line 11104 "parser.c" break; case 1052: /* with_lock: IGNORING LOCK */ -#line 5574 "parser.y" +#line 5583 "parser.y" { yyval = cb_int3; } -#line 11053 "parser.c" +#line 11112 "parser.c" break; case 1053: /* with_lock: _with LOCK */ -#line 5578 "parser.y" +#line 5587 "parser.y" { yyval = cb_int1; } -#line 11061 "parser.c" +#line 11120 "parser.c" break; case 1054: /* with_lock: _with NO LOCK */ -#line 5582 "parser.y" +#line 5591 "parser.y" { yyval = cb_int2; } -#line 11069 "parser.c" +#line 11128 "parser.c" break; case 1055: /* with_lock: _with IGNORE LOCK */ -#line 5586 "parser.y" +#line 5595 "parser.y" { yyval = cb_int3; } -#line 11077 "parser.c" +#line 11136 "parser.c" break; case 1056: /* with_lock: _with WAIT */ -#line 5590 "parser.y" +#line 5599 "parser.y" { yyval = cb_int4; } -#line 11085 "parser.c" +#line 11144 "parser.c" break; case 1057: /* read_key: %empty */ -#line 5596 "parser.y" +#line 5605 "parser.y" { yyval = NULL; } -#line 11091 "parser.c" +#line 11150 "parser.c" break; case 1058: /* read_key: KEY _is identifier_list */ -#line 5598 "parser.y" +#line 5607 "parser.y" { yyval = yyvsp[0]; } -#line 11099 "parser.c" +#line 11158 "parser.c" break; case 1062: /* end_read: %empty */ -#line 5609 "parser.y" +#line 5618 "parser.y" { terminator_warning (TERM_READ); } -#line 11105 "parser.c" +#line 11164 "parser.c" break; case 1063: /* end_read: "END-READ" */ -#line 5610 "parser.y" +#line 5619 "parser.y" { terminator_clear (TERM_READ); } -#line 11111 "parser.c" +#line 11170 "parser.c" break; case 1064: /* $@75: %empty */ -#line 5619 "parser.y" +#line 5628 "parser.y" { BEGIN_STATEMENT ("RELEASE", 0); } -#line 11117 "parser.c" +#line 11176 "parser.c" break; case 1065: /* release_statement: RELEASE $@75 record_name write_from */ -#line 5621 "parser.y" +#line 5630 "parser.y" { if (yyvsp[-1] != cb_error_node) { cb_emit_release (yyvsp[-1], yyvsp[0]); } } -#line 11127 "parser.c" +#line 11186 "parser.c" break; case 1066: /* $@76: %empty */ -#line 5634 "parser.y" +#line 5643 "parser.y" { BEGIN_STATEMENT ("RETURN", TERM_RETURN); } -#line 11133 "parser.c" +#line 11192 "parser.c" break; case 1067: /* return_statement: RETURN $@76 file_name _record read_into at_end end_return */ -#line 5637 "parser.y" +#line 5646 "parser.y" { if (yyvsp[-4] != cb_error_node) { cb_emit_return (yyvsp[-4], yyvsp[-2]); } } -#line 11143 "parser.c" +#line 11202 "parser.c" break; case 1068: /* end_return: %empty */ -#line 5645 "parser.y" +#line 5654 "parser.y" { terminator_warning (TERM_RETURN); } -#line 11149 "parser.c" +#line 11208 "parser.c" break; case 1069: /* end_return: "END-RETURN" */ -#line 5646 "parser.y" +#line 5655 "parser.y" { terminator_clear (TERM_RETURN); } -#line 11155 "parser.c" +#line 11214 "parser.c" break; case 1070: /* $@77: %empty */ -#line 5655 "parser.y" +#line 5664 "parser.y" { BEGIN_STATEMENT ("REWRITE", TERM_REWRITE); } -#line 11161 "parser.c" +#line 11220 "parser.c" break; case 1071: /* rewrite_statement: REWRITE $@77 record_name write_from write_lock opt_invalid_key end_rewrite */ -#line 5658 "parser.y" +#line 5667 "parser.y" { if (yyvsp[-4] != cb_error_node) { if (cb_use_invalidkey_handler_on_status34 && @@ -11173,238 +11232,238 @@ yyparse (void) cb_emit_rewrite (yyvsp[-4], yyvsp[-3], yyvsp[-2]); } } -#line 11177 "parser.c" +#line 11236 "parser.c" break; case 1072: /* write_lock: %empty */ -#line 5672 "parser.y" +#line 5681 "parser.y" { yyval = NULL; } -#line 11183 "parser.c" +#line 11242 "parser.c" break; case 1073: /* write_lock: _with LOCK */ -#line 5674 "parser.y" +#line 5683 "parser.y" { yyval = cb_int1; } -#line 11191 "parser.c" +#line 11250 "parser.c" break; case 1074: /* write_lock: _with NO LOCK */ -#line 5678 "parser.y" +#line 5687 "parser.y" { yyval = cb_int2; } -#line 11199 "parser.c" +#line 11258 "parser.c" break; case 1075: /* end_rewrite: %empty */ -#line 5684 "parser.y" +#line 5693 "parser.y" { terminator_warning (TERM_REWRITE); } -#line 11205 "parser.c" +#line 11264 "parser.c" break; case 1076: /* end_rewrite: "END-REWRITE" */ -#line 5685 "parser.y" +#line 5694 "parser.y" { terminator_clear (TERM_REWRITE); } -#line 11211 "parser.c" +#line 11270 "parser.c" break; case 1077: /* rollback_statement: ROLLBACK */ -#line 5695 "parser.y" +#line 5704 "parser.y" { BEGIN_STATEMENT ("ROLLBACK", 0); cb_emit_rollback (); } -#line 11220 "parser.c" +#line 11279 "parser.c" break; case 1078: /* $@78: %empty */ -#line 5707 "parser.y" +#line 5716 "parser.y" { BEGIN_STATEMENT ("SEARCH", TERM_SEARCH); } -#line 11226 "parser.c" +#line 11285 "parser.c" break; case 1080: /* search_body: table_name search_varying search_at_end search_whens */ -#line 5714 "parser.y" +#line 5723 "parser.y" { cb_emit_search (yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0]); } -#line 11234 "parser.c" +#line 11293 "parser.c" break; case 1081: /* $@79: %empty */ -#line 5718 "parser.y" +#line 5727 "parser.y" { check_unreached = 0; } -#line 11242 "parser.c" +#line 11301 "parser.c" break; case 1082: /* search_body: ALL table_name search_at_end WHEN expr $@79 statement_list */ -#line 5722 "parser.y" +#line 5731 "parser.y" { cb_emit_search_all (yyvsp[-5], yyvsp[-4], yyvsp[-2], yyvsp[0]); } -#line 11250 "parser.c" +#line 11309 "parser.c" break; case 1083: /* search_varying: %empty */ -#line 5728 "parser.y" +#line 5737 "parser.y" { yyval = NULL; } -#line 11256 "parser.c" +#line 11315 "parser.c" break; case 1084: /* search_varying: VARYING identifier */ -#line 5729 "parser.y" +#line 5738 "parser.y" { yyval = yyvsp[0]; } -#line 11262 "parser.c" +#line 11321 "parser.c" break; case 1085: /* search_at_end: %empty */ -#line 5733 "parser.y" +#line 5742 "parser.y" { yyval = NULL; } -#line 11268 "parser.c" +#line 11327 "parser.c" break; case 1086: /* $@80: %empty */ -#line 5735 "parser.y" +#line 5744 "parser.y" { check_unreached = 0; } -#line 11276 "parser.c" +#line 11335 "parser.c" break; case 1087: /* search_at_end: _at END $@80 statement_list */ -#line 5739 "parser.y" +#line 5748 "parser.y" { yyval = yyvsp[0]; } -#line 11284 "parser.c" +#line 11343 "parser.c" break; case 1088: /* search_whens: search_when */ -#line 5745 "parser.y" +#line 5754 "parser.y" { yyval = yyvsp[0]; } -#line 11290 "parser.c" +#line 11349 "parser.c" break; case 1089: /* search_whens: search_when search_whens */ -#line 5746 "parser.y" +#line 5755 "parser.y" { yyval = yyvsp[-1]; CB_IF (yyvsp[-1])->stmt2 = yyvsp[0]; } -#line 11296 "parser.c" +#line 11355 "parser.c" break; case 1090: /* $@81: %empty */ -#line 5751 "parser.y" +#line 5760 "parser.y" { check_unreached = 0; } -#line 11304 "parser.c" +#line 11363 "parser.c" break; case 1091: /* search_when: WHEN condition $@81 statement_list */ -#line 5755 "parser.y" +#line 5764 "parser.y" { yyval = cb_build_if (yyvsp[-2], yyvsp[0], NULL); } -#line 11312 "parser.c" +#line 11371 "parser.c" break; case 1092: /* end_search: %empty */ -#line 5761 "parser.y" +#line 5770 "parser.y" { terminator_warning (TERM_SEARCH); } -#line 11318 "parser.c" +#line 11377 "parser.c" break; case 1093: /* end_search: "END-SEARCH" */ -#line 5762 "parser.y" +#line 5771 "parser.y" { terminator_clear (TERM_SEARCH); } -#line 11324 "parser.c" +#line 11383 "parser.c" break; case 1094: /* $@82: %empty */ -#line 5771 "parser.y" +#line 5780 "parser.y" { BEGIN_STATEMENT ("SET", 0); } -#line 11330 "parser.c" +#line 11389 "parser.c" break; case 1101: /* set_environment: ENVIRONMENT simple_value TO simple_value */ -#line 5787 "parser.y" +#line 5796 "parser.y" { cb_emit_setenv (yyvsp[-2], yyvsp[0]); } -#line 11338 "parser.c" +#line 11397 "parser.c" break; case 1102: /* set_to: target_x_list TO ENTRY alnum_or_id */ -#line 5796 "parser.y" +#line 5805 "parser.y" { cb_emit_set_to (yyvsp[-3], cb_build_ppointer (yyvsp[0])); } -#line 11346 "parser.c" +#line 11405 "parser.c" break; case 1103: /* set_to: target_x_list TO x */ -#line 5800 "parser.y" +#line 5809 "parser.y" { cb_emit_set_to (yyvsp[-2], yyvsp[0]); } -#line 11354 "parser.c" +#line 11413 "parser.c" break; case 1104: /* set_up_down: target_x_list up_or_down BY x */ -#line 5809 "parser.y" +#line 5818 "parser.y" { cb_emit_set_up_down (yyvsp[-3], yyvsp[-2], yyvsp[0]); } -#line 11362 "parser.c" +#line 11421 "parser.c" break; case 1105: /* up_or_down: UP */ -#line 5815 "parser.y" +#line 5824 "parser.y" { yyval = cb_int0; } -#line 11368 "parser.c" +#line 11427 "parser.c" break; case 1106: /* up_or_down: DOWN */ -#line 5816 "parser.y" +#line 5825 "parser.y" { yyval = cb_int1; } -#line 11374 "parser.c" +#line 11433 "parser.c" break; case 1109: /* set_to_on_off: mnemonic_name_list TO on_or_off */ -#line 5828 "parser.y" +#line 5837 "parser.y" { cb_emit_set_on_off (yyvsp[-2], yyvsp[0]); } -#line 11382 "parser.c" +#line 11441 "parser.c" break; case 1112: /* set_to_true_false: target_x_list TO "TRUE" */ -#line 5842 "parser.y" +#line 5851 "parser.y" { cb_emit_set_true (yyvsp[-2]); } -#line 11390 "parser.c" +#line 11449 "parser.c" break; case 1113: /* set_to_true_false: target_x_list TO "FALSE" */ -#line 5846 "parser.y" +#line 5855 "parser.y" { cb_emit_set_false (yyvsp[-2]); } -#line 11398 "parser.c" +#line 11457 "parser.c" break; case 1114: /* $@83: %empty */ -#line 5857 "parser.y" +#line 5866 "parser.y" { BEGIN_STATEMENT ("SORT", 0); } -#line 11404 "parser.c" +#line 11463 "parser.c" break; case 1116: /* $@84: %empty */ -#line 5863 "parser.y" +#line 5872 "parser.y" { cb_emit_sort_init (yyvsp[-3], yyvsp[-2], yyvsp[0]); if (CB_FILE_P (cb_ref (yyvsp[-3])) && yyvsp[-2] == NULL) { @@ -11413,27 +11472,27 @@ yyparse (void) /* used in sort_input/sort_output */ save_tree_1 = yyvsp[-3]; } -#line 11417 "parser.c" +#line 11476 "parser.c" break; case 1117: /* sort_body: qualified_word sort_key_list sort_duplicates sort_collating $@84 sort_input sort_output */ -#line 5872 "parser.y" +#line 5881 "parser.y" { cb_emit_sort_finish (yyvsp[-6]); } -#line 11425 "parser.c" +#line 11484 "parser.c" break; case 1118: /* sort_key_list: %empty */ -#line 5879 "parser.y" +#line 5888 "parser.y" { yyval = NULL; } -#line 11433 "parser.c" +#line 11492 "parser.c" break; case 1119: /* sort_key_list: sort_key_list _on ascending_or_descending _key _is opt_key_list */ -#line 5884 "parser.y" +#line 5893 "parser.y" { cb_tree l; @@ -11450,51 +11509,51 @@ yyparse (void) yyval = cb_list_append (yyvsp[-5], yyvsp[0]); } } -#line 11454 "parser.c" +#line 11513 "parser.c" break; case 1120: /* opt_key_list: %empty */ -#line 5903 "parser.y" +#line 5912 "parser.y" { yyval = NULL; } -#line 11460 "parser.c" +#line 11519 "parser.c" break; case 1121: /* opt_key_list: opt_key_list qualified_word */ -#line 5904 "parser.y" +#line 5913 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 11466 "parser.c" +#line 11525 "parser.c" break; case 1123: /* sort_duplicates: with_dups _in_order */ -#line 5908 "parser.y" +#line 5917 "parser.y" { /* nothing */ } -#line 11472 "parser.c" +#line 11531 "parser.c" break; case 1124: /* sort_collating: %empty */ -#line 5912 "parser.y" +#line 5921 "parser.y" { yyval = cb_null; } -#line 11478 "parser.c" +#line 11537 "parser.c" break; case 1125: /* sort_collating: coll_sequence _is reference */ -#line 5913 "parser.y" +#line 5922 "parser.y" { yyval = cb_ref (yyvsp[0]); } -#line 11484 "parser.c" +#line 11543 "parser.c" break; case 1126: /* sort_input: %empty */ -#line 5918 "parser.y" +#line 5927 "parser.y" { if (CB_FILE_P (cb_ref (save_tree_1))) { cb_error (_("File sort requires USING or INPUT PROCEDURE")); } } -#line 11494 "parser.c" +#line 11553 "parser.c" break; case 1127: /* sort_input: USING file_name_list */ -#line 5924 "parser.y" +#line 5933 "parser.y" { if (!CB_FILE_P (cb_ref (save_tree_1))) { cb_error (_("USING invalid with table SORT")); @@ -11502,11 +11561,11 @@ yyparse (void) cb_emit_sort_using (save_tree_1, yyvsp[0]); } } -#line 11506 "parser.c" +#line 11565 "parser.c" break; case 1128: /* sort_input: INPUT PROCEDURE _is perform_procedure */ -#line 5932 "parser.y" +#line 5941 "parser.y" { if (!CB_FILE_P (cb_ref (save_tree_1))) { cb_error (_("INPUT PROCEDURE invalid with table SORT")); @@ -11514,21 +11573,21 @@ yyparse (void) cb_emit_sort_input (yyvsp[0], save_tree_1); } } -#line 11518 "parser.c" +#line 11577 "parser.c" break; case 1129: /* sort_output: %empty */ -#line 5943 "parser.y" +#line 5952 "parser.y" { if (CB_FILE_P (cb_ref (save_tree_1))) { cb_error (_("File sort requires GIVING or OUTPUT PROCEDURE")); } } -#line 11528 "parser.c" +#line 11587 "parser.c" break; case 1130: /* sort_output: GIVING file_name_list */ -#line 5949 "parser.y" +#line 5958 "parser.y" { if (!CB_FILE_P (cb_ref (save_tree_1))) { cb_error (_("GIVING invalid with table SORT")); @@ -11536,11 +11595,11 @@ yyparse (void) cb_emit_sort_giving (save_tree_1, yyvsp[0]); } } -#line 11540 "parser.c" +#line 11599 "parser.c" break; case 1131: /* sort_output: OUTPUT PROCEDURE _is perform_procedure */ -#line 5957 "parser.y" +#line 5966 "parser.y" { if (!CB_FILE_P (cb_ref (save_tree_1))) { cb_error (_("OUTPUT PROCEDURE invalid with table SORT")); @@ -11548,23 +11607,23 @@ yyparse (void) cb_emit_sort_output (yyvsp[0], save_tree_1); } } -#line 11552 "parser.c" +#line 11611 "parser.c" break; case 1132: /* $@85: %empty */ -#line 5972 "parser.y" +#line 5981 "parser.y" { BEGIN_STATEMENT ("START", TERM_START); } -#line 11558 "parser.c" +#line 11617 "parser.c" break; case 1133: /* @86: %empty */ -#line 5973 "parser.y" +#line 5982 "parser.y" { yyval = cb_int (COB_EQ); } -#line 11564 "parser.c" +#line 11623 "parser.c" break; case 1134: /* start_statement: START $@85 file_name @86 start_key opt_invalid_key end_start */ -#line 5976 "parser.y" +#line 5985 "parser.y" { if (CB_FILE_P (cb_ref (yyvsp[-4]))) { if (CB_FILE (cb_ref (yyvsp[-4]))->organization != COB_ORG_INDEXED && @@ -11579,394 +11638,394 @@ yyparse (void) yyval = cb_error_node; } } -#line 11583 "parser.c" +#line 11642 "parser.c" break; case 1135: /* start_key: %empty */ -#line 5993 "parser.y" +#line 6002 "parser.y" { yyval = NULL; } -#line 11589 "parser.c" +#line 11648 "parser.c" break; case 1136: /* start_key: KEY _is start_op identifier_list */ -#line 5995 "parser.y" +#line 6004 "parser.y" { yyvsp[-4] = yyvsp[-1]; yyval = yyvsp[0]; } -#line 11598 "parser.c" +#line 11657 "parser.c" break; case 1137: /* start_op: flag_not eq */ -#line 6002 "parser.y" +#line 6011 "parser.y" { yyval = cb_int ((yyvsp[-1] == cb_int1) ? COB_NE : COB_EQ); } -#line 11604 "parser.c" +#line 11663 "parser.c" break; case 1138: /* start_op: flag_not gt */ -#line 6003 "parser.y" +#line 6012 "parser.y" { yyval = cb_int ((yyvsp[-1] == cb_int1) ? COB_LE : COB_GT); } -#line 11610 "parser.c" +#line 11669 "parser.c" break; case 1139: /* start_op: flag_not lt */ -#line 6004 "parser.y" +#line 6013 "parser.y" { yyval = cb_int ((yyvsp[-1] == cb_int1) ? COB_GE : COB_LT); } -#line 11616 "parser.c" +#line 11675 "parser.c" break; case 1140: /* start_op: flag_not ge */ -#line 6005 "parser.y" +#line 6014 "parser.y" { yyval = cb_int ((yyvsp[-1] == cb_int1) ? COB_LT : COB_GE); } -#line 11622 "parser.c" +#line 11681 "parser.c" break; case 1141: /* start_op: flag_not le */ -#line 6006 "parser.y" +#line 6015 "parser.y" { yyval = cb_int ((yyvsp[-1] == cb_int1) ? COB_GT : COB_LE); } -#line 11628 "parser.c" +#line 11687 "parser.c" break; case 1142: /* end_start: %empty */ -#line 6010 "parser.y" +#line 6019 "parser.y" { terminator_warning (TERM_START); } -#line 11634 "parser.c" +#line 11693 "parser.c" break; case 1143: /* end_start: "END-START" */ -#line 6011 "parser.y" +#line 6020 "parser.y" { terminator_clear (TERM_START); } -#line 11640 "parser.c" +#line 11699 "parser.c" break; case 1144: /* $@87: %empty */ -#line 6020 "parser.y" +#line 6029 "parser.y" { BEGIN_STATEMENT ("STOP", 0); } -#line 11646 "parser.c" +#line 11705 "parser.c" break; case 1145: /* stop_statement: STOP RUN $@87 stop_returning */ -#line 6022 "parser.y" +#line 6031 "parser.y" { cb_emit_stop_run (yyvsp[0]); } -#line 11654 "parser.c" +#line 11713 "parser.c" break; case 1146: /* $@88: %empty */ -#line 6025 "parser.y" +#line 6034 "parser.y" { BEGIN_STATEMENT ("STOP", 0); } -#line 11660 "parser.c" +#line 11719 "parser.c" break; case 1147: /* stop_statement: STOP "Literal" $@88 */ -#line 6026 "parser.y" +#line 6035 "parser.y" { cb_verify (cb_stop_literal_statement, "STOP literal"); } -#line 11668 "parser.c" +#line 11727 "parser.c" break; case 1148: /* stop_returning: %empty */ -#line 6032 "parser.y" +#line 6041 "parser.y" { yyval = current_program->cb_return_code; } -#line 11674 "parser.c" +#line 11733 "parser.c" break; case 1149: /* stop_returning: RETURNING x */ -#line 6033 "parser.y" +#line 6042 "parser.y" { yyval = yyvsp[0]; } -#line 11680 "parser.c" +#line 11739 "parser.c" break; case 1150: /* stop_returning: GIVING x */ -#line 6034 "parser.y" +#line 6043 "parser.y" { yyval = yyvsp[0]; } -#line 11686 "parser.c" +#line 11745 "parser.c" break; case 1151: /* $@89: %empty */ -#line 6043 "parser.y" +#line 6052 "parser.y" { BEGIN_STATEMENT ("STRING", TERM_STRING); } -#line 11692 "parser.c" +#line 11751 "parser.c" break; case 1152: /* string_statement: STRING $@89 string_item_list INTO identifier opt_with_pointer on_overflow end_string */ -#line 6046 "parser.y" +#line 6055 "parser.y" { cb_emit_string (yyvsp[-5], yyvsp[-3], yyvsp[-2]); } -#line 11700 "parser.c" +#line 11759 "parser.c" break; case 1153: /* string_item_list: string_item */ -#line 6052 "parser.y" +#line 6061 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 11706 "parser.c" +#line 11765 "parser.c" break; case 1154: /* string_item_list: string_item_list string_item */ -#line 6053 "parser.y" +#line 6062 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 11712 "parser.c" +#line 11771 "parser.c" break; case 1155: /* string_item: x */ -#line 6057 "parser.y" +#line 6066 "parser.y" { yyval = yyvsp[0]; } -#line 11718 "parser.c" +#line 11777 "parser.c" break; case 1156: /* string_item: DELIMITED _by SIZE */ -#line 6058 "parser.y" +#line 6067 "parser.y" { yyval = cb_build_pair (cb_int0, NULL); } -#line 11724 "parser.c" +#line 11783 "parser.c" break; case 1157: /* string_item: DELIMITED _by x */ -#line 6059 "parser.y" +#line 6068 "parser.y" { yyval = cb_build_pair (yyvsp[0], NULL); } -#line 11730 "parser.c" +#line 11789 "parser.c" break; case 1158: /* opt_with_pointer: %empty */ -#line 6063 "parser.y" +#line 6072 "parser.y" { yyval = cb_int0; } -#line 11736 "parser.c" +#line 11795 "parser.c" break; case 1159: /* opt_with_pointer: _with POINTER identifier */ -#line 6064 "parser.y" +#line 6073 "parser.y" { yyval = yyvsp[0]; } -#line 11742 "parser.c" +#line 11801 "parser.c" break; case 1160: /* end_string: %empty */ -#line 6068 "parser.y" +#line 6077 "parser.y" { terminator_warning (TERM_STRING); } -#line 11748 "parser.c" +#line 11807 "parser.c" break; case 1161: /* end_string: "END-STRING" */ -#line 6069 "parser.y" +#line 6078 "parser.y" { terminator_clear (TERM_STRING); } -#line 11754 "parser.c" +#line 11813 "parser.c" break; case 1162: /* $@90: %empty */ -#line 6078 "parser.y" +#line 6087 "parser.y" { BEGIN_STATEMENT ("SUBTRACT", TERM_SUBTRACT); } -#line 11760 "parser.c" +#line 11819 "parser.c" break; case 1164: /* subtract_body: x_list FROM arithmetic_x_list on_size_error */ -#line 6085 "parser.y" +#line 6094 "parser.y" { cb_emit_arithmetic (yyvsp[-1], '-', cb_build_binary_list (yyvsp[-3], '+')); } -#line 11768 "parser.c" +#line 11827 "parser.c" break; case 1165: /* subtract_body: x_list FROM x GIVING arithmetic_x_list on_size_error */ -#line 6089 "parser.y" +#line 6098 "parser.y" { cb_emit_arithmetic (yyvsp[-1], 0, cb_build_binary_list (cb_cons (yyvsp[-3], yyvsp[-5]), '-')); } -#line 11776 "parser.c" +#line 11835 "parser.c" break; case 1166: /* subtract_body: CORRESPONDING identifier FROM identifier flag_rounded on_size_error */ -#line 6093 "parser.y" +#line 6102 "parser.y" { cb_emit_corresponding (cb_build_sub, yyvsp[-2], yyvsp[-4], yyvsp[-1]); } -#line 11784 "parser.c" +#line 11843 "parser.c" break; case 1167: /* end_subtract: %empty */ -#line 6099 "parser.y" +#line 6108 "parser.y" { terminator_warning (TERM_SUBTRACT); } -#line 11790 "parser.c" +#line 11849 "parser.c" break; case 1168: /* end_subtract: "END-SUBTRACT" */ -#line 6100 "parser.y" +#line 6109 "parser.y" { terminator_clear (TERM_SUBTRACT); } -#line 11796 "parser.c" +#line 11855 "parser.c" break; case 1169: /* suppress_statement: SUPPRESS _printing */ -#line 6110 "parser.y" +#line 6119 "parser.y" { BEGIN_STATEMENT ("SUPPRESS", 0); PENDING("SUPPRESS"); } -#line 11805 "parser.c" +#line 11864 "parser.c" break; case 1172: /* $@91: %empty */ -#line 6125 "parser.y" +#line 6134 "parser.y" { BEGIN_STATEMENT ("TERMINATE", 0); } -#line 11811 "parser.c" +#line 11870 "parser.c" break; case 1173: /* terminate_statement: TERMINATE $@91 identifier_list */ -#line 6127 "parser.y" +#line 6136 "parser.y" { PENDING("TERMINATE"); } -#line 11819 "parser.c" +#line 11878 "parser.c" break; case 1174: /* $@92: %empty */ -#line 6138 "parser.y" +#line 6147 "parser.y" { BEGIN_STATEMENT ("TRANSFORM", 0); } -#line 11825 "parser.c" +#line 11884 "parser.c" break; case 1175: /* transform_statement: TRANSFORM $@92 identifier FROM simple_value TO simple_all_value */ -#line 6140 "parser.y" +#line 6149 "parser.y" { cb_tree x; x = cb_build_converting (yyvsp[-2], yyvsp[0], cb_build_inspect_region_start ()); cb_emit_inspect (yyvsp[-4], x, cb_int0, 2); } -#line 11836 "parser.c" +#line 11895 "parser.c" break; case 1176: /* $@93: %empty */ -#line 6154 "parser.y" +#line 6163 "parser.y" { BEGIN_STATEMENT ("UNLOCK", 0); } -#line 11842 "parser.c" +#line 11901 "parser.c" break; case 1177: /* unlock_statement: UNLOCK $@93 file_name opt_record */ -#line 6156 "parser.y" +#line 6165 "parser.y" { if (yyvsp[-1] != cb_error_node) { cb_emit_unlock (yyvsp[-1]); } } -#line 11852 "parser.c" +#line 11911 "parser.c" break; case 1181: /* $@94: %empty */ -#line 6175 "parser.y" +#line 6184 "parser.y" { BEGIN_STATEMENT ("UNSTRING", TERM_UNSTRING); } -#line 11858 "parser.c" +#line 11917 "parser.c" break; case 1182: /* unstring_statement: UNSTRING $@94 identifier unstring_delimited unstring_into opt_with_pointer unstring_tallying on_overflow end_unstring */ -#line 6179 "parser.y" +#line 6188 "parser.y" { cb_emit_unstring (yyvsp[-6], yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-2]); } -#line 11866 "parser.c" +#line 11925 "parser.c" break; case 1183: /* unstring_delimited: %empty */ -#line 6185 "parser.y" +#line 6194 "parser.y" { yyval = NULL; } -#line 11872 "parser.c" +#line 11931 "parser.c" break; case 1184: /* unstring_delimited: DELIMITED _by unstring_delimited_list */ -#line 6187 "parser.y" +#line 6196 "parser.y" { yyval = yyvsp[0]; } -#line 11878 "parser.c" +#line 11937 "parser.c" break; case 1185: /* unstring_delimited_list: unstring_delimited_item */ -#line 6191 "parser.y" +#line 6200 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 11884 "parser.c" +#line 11943 "parser.c" break; case 1186: /* unstring_delimited_list: unstring_delimited_list OR unstring_delimited_item */ -#line 6193 "parser.y" +#line 6202 "parser.y" { yyval = cb_list_add (yyvsp[-2], yyvsp[0]); } -#line 11890 "parser.c" +#line 11949 "parser.c" break; case 1187: /* unstring_delimited_item: flag_all simple_value */ -#line 6198 "parser.y" +#line 6207 "parser.y" { yyval = cb_build_unstring_delimited (yyvsp[-1], yyvsp[0]); } -#line 11898 "parser.c" +#line 11957 "parser.c" break; case 1188: /* unstring_into: INTO unstring_into_item */ -#line 6204 "parser.y" +#line 6213 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 11904 "parser.c" +#line 11963 "parser.c" break; case 1189: /* unstring_into: unstring_into unstring_into_item */ -#line 6206 "parser.y" +#line 6215 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 11910 "parser.c" +#line 11969 "parser.c" break; case 1190: /* unstring_into_item: identifier unstring_into_delimiter unstring_into_count */ -#line 6211 "parser.y" +#line 6220 "parser.y" { yyval = cb_build_unstring_into (yyvsp[-2], yyvsp[-1], yyvsp[0]); } -#line 11918 "parser.c" +#line 11977 "parser.c" break; case 1191: /* unstring_into_delimiter: %empty */ -#line 6217 "parser.y" +#line 6226 "parser.y" { yyval = NULL; } -#line 11924 "parser.c" +#line 11983 "parser.c" break; case 1192: /* unstring_into_delimiter: DELIMITER _in identifier */ -#line 6218 "parser.y" +#line 6227 "parser.y" { yyval = yyvsp[0]; } -#line 11930 "parser.c" +#line 11989 "parser.c" break; case 1193: /* unstring_into_count: %empty */ -#line 6222 "parser.y" +#line 6231 "parser.y" { yyval = NULL; } -#line 11936 "parser.c" +#line 11995 "parser.c" break; case 1194: /* unstring_into_count: COUNT _in identifier */ -#line 6223 "parser.y" +#line 6232 "parser.y" { yyval = yyvsp[0]; } -#line 11942 "parser.c" +#line 12001 "parser.c" break; case 1195: /* unstring_tallying: %empty */ -#line 6227 "parser.y" +#line 6236 "parser.y" { yyval = NULL; } -#line 11948 "parser.c" +#line 12007 "parser.c" break; case 1196: /* unstring_tallying: TALLYING _in identifier */ -#line 6228 "parser.y" +#line 6237 "parser.y" { yyval = yyvsp[0]; } -#line 11954 "parser.c" +#line 12013 "parser.c" break; case 1197: /* end_unstring: %empty */ -#line 6232 "parser.y" +#line 6241 "parser.y" { terminator_warning (TERM_UNSTRING); } -#line 11960 "parser.c" +#line 12019 "parser.c" break; case 1198: /* end_unstring: "END-UNSTRING" */ -#line 6233 "parser.y" +#line 6242 "parser.y" { terminator_clear (TERM_UNSTRING); } -#line 11966 "parser.c" +#line 12025 "parser.c" break; case 1202: /* use_exception: USE use_global _after _standard exception_or_error _procedure _on use_exception_target */ -#line 6251 "parser.y" +#line 6260 "parser.y" { if (!in_declaratives) { cb_error (_("USE statement must be within DECLARATIVES")); @@ -11984,28 +12043,28 @@ yyparse (void) } } } -#line 11988 "parser.c" +#line 12047 "parser.c" break; case 1203: /* use_global: %empty */ -#line 6272 "parser.y" +#line 6281 "parser.y" { use_global_ind = 0; } -#line 11996 "parser.c" +#line 12055 "parser.c" break; case 1204: /* use_global: GLOBAL */ -#line 6276 "parser.y" +#line 6285 "parser.y" { use_global_ind = 1; current_program->flag_global_use = 1; } -#line 12005 "parser.c" +#line 12064 "parser.c" break; case 1205: /* use_exception_target: file_name_list */ -#line 6284 "parser.y" +#line 6293 "parser.y" { cb_tree l; @@ -12015,69 +12074,69 @@ yyparse (void) } } } -#line 12019 "parser.c" +#line 12078 "parser.c" break; case 1206: /* use_exception_target: INPUT */ -#line 6294 "parser.y" +#line 6303 "parser.y" { current_program->global_handler[COB_OPEN_INPUT].handler_label = current_section; current_program->global_handler[COB_OPEN_INPUT].handler_prog = current_program; } -#line 12028 "parser.c" +#line 12087 "parser.c" break; case 1207: /* use_exception_target: OUTPUT */ -#line 6299 "parser.y" +#line 6308 "parser.y" { current_program->global_handler[COB_OPEN_OUTPUT].handler_label = current_section; current_program->global_handler[COB_OPEN_OUTPUT].handler_prog = current_program; } -#line 12037 "parser.c" +#line 12096 "parser.c" break; case 1208: /* use_exception_target: "I-O" */ -#line 6304 "parser.y" +#line 6313 "parser.y" { current_program->global_handler[COB_OPEN_I_O].handler_label = current_section; current_program->global_handler[COB_OPEN_I_O].handler_prog = current_program; } -#line 12046 "parser.c" +#line 12105 "parser.c" break; case 1209: /* use_exception_target: EXTEND */ -#line 6309 "parser.y" +#line 6318 "parser.y" { current_program->global_handler[COB_OPEN_EXTEND].handler_label = current_section; current_program->global_handler[COB_OPEN_EXTEND].handler_prog = current_program; } -#line 12055 "parser.c" +#line 12114 "parser.c" break; case 1222: /* use_debugging: USE _for DEBUGGING _on use_debugging_target */ -#line 6341 "parser.y" +#line 6350 "parser.y" { PENDING ("USE FOR DEBUGGING"); } -#line 12063 "parser.c" +#line 12122 "parser.c" break; case 1225: /* use_reporting: USE use_global BEFORE REPORTING identifier */ -#line 6353 "parser.y" +#line 6362 "parser.y" { PENDING ("USE BEFORE REPORTING"); } -#line 12071 "parser.c" +#line 12130 "parser.c" break; case 1226: /* $@95: %empty */ -#line 6364 "parser.y" +#line 6373 "parser.y" { BEGIN_STATEMENT ("WRITE", TERM_WRITE); } -#line 12077 "parser.c" +#line 12136 "parser.c" break; case 1227: /* write_statement: WRITE $@95 record_name write_from write_lock write_option write_handler end_write */ -#line 6367 "parser.y" +#line 6376 "parser.y" { if (yyvsp[-5] != cb_error_node) { if (cb_use_invalidkey_handler_on_status34 && @@ -12089,759 +12148,759 @@ yyparse (void) cb_emit_write (yyvsp[-5], yyvsp[-4], yyvsp[-2], yyvsp[-3]); } } -#line 12093 "parser.c" +#line 12152 "parser.c" break; case 1228: /* write_from: %empty */ -#line 6381 "parser.y" +#line 6390 "parser.y" { yyval = NULL; } -#line 12099 "parser.c" +#line 12158 "parser.c" break; case 1229: /* write_from: FROM id_or_lit */ -#line 6382 "parser.y" +#line 6391 "parser.y" { yyval = yyvsp[0]; } -#line 12105 "parser.c" +#line 12164 "parser.c" break; case 1230: /* write_option: %empty */ -#line 6387 "parser.y" +#line 6396 "parser.y" { yyval = cb_int0; } -#line 12113 "parser.c" +#line 12172 "parser.c" break; case 1231: /* write_option: before_or_after _advancing num_id_or_lit _line_or_lines */ -#line 6391 "parser.y" +#line 6400 "parser.y" { yyval = cb_build_write_advancing_lines (yyvsp[-3], yyvsp[-1]); } -#line 12121 "parser.c" +#line 12180 "parser.c" break; case 1232: /* write_option: before_or_after _advancing mnemonic_name */ -#line 6395 "parser.y" +#line 6404 "parser.y" { yyval = cb_build_write_advancing_mnemonic (yyvsp[-2], yyvsp[0]); } -#line 12129 "parser.c" +#line 12188 "parser.c" break; case 1233: /* write_option: before_or_after _advancing PAGE */ -#line 6399 "parser.y" +#line 6408 "parser.y" { yyval = cb_build_write_advancing_page (yyvsp[-2]); } -#line 12137 "parser.c" +#line 12196 "parser.c" break; case 1234: /* before_or_after: BEFORE */ -#line 6405 "parser.y" +#line 6414 "parser.y" { yyval = CB_BEFORE; } -#line 12143 "parser.c" +#line 12202 "parser.c" break; case 1235: /* before_or_after: AFTER */ -#line 6406 "parser.y" +#line 6415 "parser.y" { yyval = CB_AFTER; } -#line 12149 "parser.c" +#line 12208 "parser.c" break; case 1239: /* end_write: %empty */ -#line 6415 "parser.y" +#line 6424 "parser.y" { terminator_warning (TERM_WRITE); } -#line 12155 "parser.c" +#line 12214 "parser.c" break; case 1240: /* end_write: "END-WRITE" */ -#line 6416 "parser.y" +#line 6425 "parser.y" { terminator_clear (TERM_WRITE); } -#line 12161 "parser.c" +#line 12220 "parser.c" break; case 1241: /* on_accp_exception: opt_on_exception opt_not_on_exception */ -#line 6431 "parser.y" +#line 6440 "parser.y" { current_statement->handler_id = COB_EC_IMP_ACCEPT; } -#line 12169 "parser.c" +#line 12228 "parser.c" break; case 1242: /* on_disp_exception: opt_on_exception opt_not_on_exception */ -#line 6439 "parser.y" +#line 6448 "parser.y" { current_statement->handler_id = COB_EC_IMP_DISPLAY; } -#line 12177 "parser.c" +#line 12236 "parser.c" break; case 1244: /* $@96: %empty */ -#line 6446 "parser.y" +#line 6455 "parser.y" { check_unreached = 0; } -#line 12185 "parser.c" +#line 12244 "parser.c" break; case 1245: /* opt_on_exception: EXCEPTION $@96 statement_list */ -#line 6450 "parser.y" +#line 6459 "parser.y" { current_statement->handler1 = yyvsp[0]; } -#line 12193 "parser.c" +#line 12252 "parser.c" break; case 1247: /* $@97: %empty */ -#line 6457 "parser.y" +#line 6466 "parser.y" { check_unreached = 0; } -#line 12201 "parser.c" +#line 12260 "parser.c" break; case 1248: /* opt_not_on_exception: "NOT EXCEPTION" $@97 statement_list */ -#line 6461 "parser.y" +#line 6470 "parser.y" { current_statement->handler2 = yyvsp[0]; } -#line 12209 "parser.c" +#line 12268 "parser.c" break; case 1251: /* $@98: %empty */ -#line 6477 "parser.y" +#line 6486 "parser.y" { check_unreached = 0; current_statement->handler_id = COB_EC_SIZE; } -#line 12218 "parser.c" +#line 12277 "parser.c" break; case 1252: /* opt_on_size_error: "SIZE ERROR" $@98 statement_list */ -#line 6482 "parser.y" +#line 6491 "parser.y" { current_statement->handler1 = yyvsp[0]; } -#line 12226 "parser.c" +#line 12285 "parser.c" break; case 1254: /* $@99: %empty */ -#line 6489 "parser.y" +#line 6498 "parser.y" { check_unreached = 0; current_statement->handler_id = COB_EC_SIZE; } -#line 12235 "parser.c" +#line 12294 "parser.c" break; case 1255: /* opt_not_on_size_error: "NOT SIZE ERROR" $@99 statement_list */ -#line 6494 "parser.y" +#line 6503 "parser.y" { current_statement->handler2 = yyvsp[0]; } -#line 12243 "parser.c" +#line 12302 "parser.c" break; case 1256: /* on_overflow: opt_on_overflow opt_not_on_overflow */ -#line 6506 "parser.y" +#line 6515 "parser.y" { current_statement->handler_id = COB_EC_OVERFLOW; } -#line 12251 "parser.c" +#line 12310 "parser.c" break; case 1258: /* $@100: %empty */ -#line 6513 "parser.y" +#line 6522 "parser.y" { check_unreached = 0; } -#line 12259 "parser.c" +#line 12318 "parser.c" break; case 1259: /* opt_on_overflow: OVERFLOW $@100 statement_list */ -#line 6517 "parser.y" +#line 6526 "parser.y" { current_statement->handler1 = yyvsp[0]; } -#line 12267 "parser.c" +#line 12326 "parser.c" break; case 1261: /* $@101: %empty */ -#line 6524 "parser.y" +#line 6533 "parser.y" { check_unreached = 0; } -#line 12275 "parser.c" +#line 12334 "parser.c" break; case 1262: /* opt_not_on_overflow: "NOT OVERFLOW" $@101 statement_list */ -#line 6528 "parser.y" +#line 6537 "parser.y" { current_statement->handler2 = yyvsp[0]; } -#line 12283 "parser.c" +#line 12342 "parser.c" break; case 1263: /* at_end: at_end_sentence */ -#line 6540 "parser.y" +#line 6549 "parser.y" { current_statement->handler_id = COB_EC_I_O_AT_END; current_statement->handler1 = yyvsp[0]; } -#line 12292 "parser.c" +#line 12351 "parser.c" break; case 1264: /* at_end: not_at_end_sentence */ -#line 6545 "parser.y" +#line 6554 "parser.y" { current_statement->handler_id = COB_EC_I_O_AT_END; current_statement->handler2 = yyvsp[0]; } -#line 12301 "parser.c" +#line 12360 "parser.c" break; case 1265: /* at_end: at_end_sentence not_at_end_sentence */ -#line 6550 "parser.y" +#line 6559 "parser.y" { current_statement->handler_id = COB_EC_I_O_AT_END; current_statement->handler1 = yyvsp[-1]; current_statement->handler2 = yyvsp[0]; } -#line 12311 "parser.c" +#line 12370 "parser.c" break; case 1266: /* $@102: %empty */ -#line 6559 "parser.y" +#line 6568 "parser.y" { check_unreached = 0; } -#line 12319 "parser.c" +#line 12378 "parser.c" break; case 1267: /* at_end_sentence: END $@102 statement_list */ -#line 6563 "parser.y" +#line 6572 "parser.y" { yyval = yyvsp[0]; } -#line 12327 "parser.c" +#line 12386 "parser.c" break; case 1268: /* $@103: %empty */ -#line 6570 "parser.y" +#line 6579 "parser.y" { check_unreached = 0; } -#line 12335 "parser.c" +#line 12394 "parser.c" break; case 1269: /* not_at_end_sentence: "NOT END" $@103 statement_list */ -#line 6574 "parser.y" +#line 6583 "parser.y" { yyval = yyvsp[0]; } -#line 12343 "parser.c" +#line 12402 "parser.c" break; case 1270: /* at_eop: at_eop_sentence */ -#line 6586 "parser.y" +#line 6595 "parser.y" { current_statement->handler_id = COB_EC_I_O_EOP; current_statement->handler1 = yyvsp[0]; } -#line 12352 "parser.c" +#line 12411 "parser.c" break; case 1271: /* at_eop: not_at_eop_sentence */ -#line 6591 "parser.y" +#line 6600 "parser.y" { current_statement->handler_id = COB_EC_I_O_EOP; current_statement->handler2 = yyvsp[0]; } -#line 12361 "parser.c" +#line 12420 "parser.c" break; case 1272: /* at_eop: at_eop_sentence not_at_eop_sentence */ -#line 6596 "parser.y" +#line 6605 "parser.y" { current_statement->handler_id = COB_EC_I_O_EOP; current_statement->handler1 = yyvsp[-1]; current_statement->handler2 = yyvsp[0]; } -#line 12371 "parser.c" +#line 12430 "parser.c" break; case 1273: /* $@104: %empty */ -#line 6605 "parser.y" +#line 6614 "parser.y" { check_unreached = 0; } -#line 12379 "parser.c" +#line 12438 "parser.c" break; case 1274: /* at_eop_sentence: EOP $@104 statement_list */ -#line 6609 "parser.y" +#line 6618 "parser.y" { yyval = yyvsp[0]; } -#line 12387 "parser.c" +#line 12446 "parser.c" break; case 1275: /* $@105: %empty */ -#line 6616 "parser.y" +#line 6625 "parser.y" { check_unreached = 0; } -#line 12395 "parser.c" +#line 12454 "parser.c" break; case 1276: /* not_at_eop_sentence: "NOT EOP" $@105 statement_list */ -#line 6620 "parser.y" +#line 6629 "parser.y" { yyval = yyvsp[0]; } -#line 12403 "parser.c" +#line 12462 "parser.c" break; case 1279: /* invalid_key: invalid_key_sentence */ -#line 6636 "parser.y" +#line 6645 "parser.y" { current_statement->handler_id = COB_EC_I_O_INVALID_KEY; current_statement->handler1 = yyvsp[0]; } -#line 12412 "parser.c" +#line 12471 "parser.c" break; case 1280: /* invalid_key: not_invalid_key_sentence */ -#line 6641 "parser.y" +#line 6650 "parser.y" { current_statement->handler_id = COB_EC_I_O_INVALID_KEY; current_statement->handler2 = yyvsp[0]; } -#line 12421 "parser.c" +#line 12480 "parser.c" break; case 1281: /* invalid_key: invalid_key_sentence not_invalid_key_sentence */ -#line 6646 "parser.y" +#line 6655 "parser.y" { current_statement->handler_id = COB_EC_I_O_INVALID_KEY; current_statement->handler1 = yyvsp[-1]; current_statement->handler2 = yyvsp[0]; } -#line 12431 "parser.c" +#line 12490 "parser.c" break; case 1282: /* $@106: %empty */ -#line 6655 "parser.y" +#line 6664 "parser.y" { check_unreached = 0; } -#line 12439 "parser.c" +#line 12498 "parser.c" break; case 1283: /* invalid_key_sentence: "INVALID KEY" $@106 statement_list */ -#line 6659 "parser.y" +#line 6668 "parser.y" { yyval = yyvsp[0]; } -#line 12447 "parser.c" +#line 12506 "parser.c" break; case 1284: /* $@107: %empty */ -#line 6666 "parser.y" +#line 6675 "parser.y" { check_unreached = 0; } -#line 12455 "parser.c" +#line 12514 "parser.c" break; case 1285: /* not_invalid_key_sentence: "NOT INVALID KEY" $@107 statement_list */ -#line 6670 "parser.y" +#line 6679 "parser.y" { yyval = yyvsp[0]; } -#line 12463 "parser.c" +#line 12522 "parser.c" break; case 1286: /* _opt_scroll_lines: %empty */ -#line 6682 "parser.y" +#line 6691 "parser.y" { yyval = cb_one; } -#line 12471 "parser.c" +#line 12530 "parser.c" break; case 1287: /* _opt_scroll_lines: _by num_id_or_lit _line_or_lines */ -#line 6686 "parser.y" +#line 6695 "parser.y" { yyval = yyvsp[-1]; } -#line 12479 "parser.c" +#line 12538 "parser.c" break; case 1288: /* condition: expr */ -#line 6698 "parser.y" +#line 6707 "parser.y" { yyval = cb_build_cond (yyvsp[0]); } -#line 12487 "parser.c" +#line 12546 "parser.c" break; case 1289: /* expr: partial_expr */ -#line 6705 "parser.y" +#line 6714 "parser.y" { yyval = cb_build_expr (yyvsp[0]); } -#line 12495 "parser.c" +#line 12554 "parser.c" break; case 1290: /* $@108: %empty */ -#line 6711 "parser.y" +#line 6720 "parser.y" { current_expr = NULL; } -#line 12503 "parser.c" +#line 12562 "parser.c" break; case 1291: /* partial_expr: $@108 expr_tokens */ -#line 6715 "parser.y" +#line 6724 "parser.y" { yyval = cb_list_reverse (current_expr); } -#line 12511 "parser.c" +#line 12570 "parser.c" break; case 1292: /* expr_tokens: expr_token x */ -#line 6721 "parser.y" +#line 6730 "parser.y" { push_expr ('x', yyvsp[0]); } -#line 12517 "parser.c" +#line 12576 "parser.c" break; case 1293: /* expr_tokens: expr_tokens ')' */ -#line 6722 "parser.y" +#line 6731 "parser.y" { push_expr (')', NULL); } -#line 12523 "parser.c" +#line 12582 "parser.c" break; case 1294: /* expr_tokens: expr_token OMITTED */ -#line 6724 "parser.y" +#line 6733 "parser.y" { push_expr ('O', NULL); } -#line 12529 "parser.c" +#line 12588 "parser.c" break; case 1295: /* expr_tokens: expr_token NUMERIC */ -#line 6725 "parser.y" +#line 6734 "parser.y" { push_expr ('9', NULL); } -#line 12535 "parser.c" +#line 12594 "parser.c" break; case 1296: /* expr_tokens: expr_token ALPHABETIC */ -#line 6726 "parser.y" +#line 6735 "parser.y" { push_expr ('A', NULL); } -#line 12541 "parser.c" +#line 12600 "parser.c" break; case 1297: /* expr_tokens: expr_token "ALPHABETIC-LOWER" */ -#line 6727 "parser.y" +#line 6736 "parser.y" { push_expr ('L', NULL); } -#line 12547 "parser.c" +#line 12606 "parser.c" break; case 1298: /* expr_tokens: expr_token "ALPHABETIC-UPPER" */ -#line 6728 "parser.y" +#line 6737 "parser.y" { push_expr ('U', NULL); } -#line 12553 "parser.c" +#line 12612 "parser.c" break; case 1299: /* expr_tokens: expr_token CLASS_NAME */ -#line 6729 "parser.y" +#line 6738 "parser.y" { push_expr ('x', yyvsp[0]); } -#line 12559 "parser.c" +#line 12618 "parser.c" break; case 1300: /* expr_tokens: expr_tokens OMITTED */ -#line 6731 "parser.y" +#line 6740 "parser.y" { push_expr ('O', NULL); } -#line 12565 "parser.c" +#line 12624 "parser.c" break; case 1301: /* expr_tokens: expr_tokens NUMERIC */ -#line 6732 "parser.y" +#line 6741 "parser.y" { push_expr ('9', NULL); } -#line 12571 "parser.c" +#line 12630 "parser.c" break; case 1302: /* expr_tokens: expr_tokens ALPHABETIC */ -#line 6733 "parser.y" +#line 6742 "parser.y" { push_expr ('A', NULL); } -#line 12577 "parser.c" +#line 12636 "parser.c" break; case 1303: /* expr_tokens: expr_tokens "ALPHABETIC-LOWER" */ -#line 6734 "parser.y" +#line 6743 "parser.y" { push_expr ('L', NULL); } -#line 12583 "parser.c" +#line 12642 "parser.c" break; case 1304: /* expr_tokens: expr_tokens "ALPHABETIC-UPPER" */ -#line 6735 "parser.y" +#line 6744 "parser.y" { push_expr ('U', NULL); } -#line 12589 "parser.c" +#line 12648 "parser.c" break; case 1305: /* expr_tokens: expr_tokens CLASS_NAME */ -#line 6736 "parser.y" +#line 6745 "parser.y" { push_expr ('x', yyvsp[0]); } -#line 12595 "parser.c" +#line 12654 "parser.c" break; case 1306: /* expr_tokens: expr_token POSITIVE */ -#line 6738 "parser.y" +#line 6747 "parser.y" { push_expr ('P', NULL); } -#line 12601 "parser.c" +#line 12660 "parser.c" break; case 1307: /* expr_tokens: expr_token NEGATIVE */ -#line 6739 "parser.y" +#line 6748 "parser.y" { push_expr ('N', NULL); } -#line 12607 "parser.c" +#line 12666 "parser.c" break; case 1308: /* expr_tokens: expr_tokens POSITIVE */ -#line 6741 "parser.y" +#line 6750 "parser.y" { push_expr ('P', NULL); } -#line 12613 "parser.c" +#line 12672 "parser.c" break; case 1309: /* expr_tokens: expr_tokens NEGATIVE */ -#line 6742 "parser.y" +#line 6751 "parser.y" { push_expr ('N', NULL); } -#line 12619 "parser.c" +#line 12678 "parser.c" break; case 1310: /* expr_tokens: expr_tokens ZERO */ -#line 6743 "parser.y" +#line 6752 "parser.y" { push_expr ('x', cb_zero); } -#line 12625 "parser.c" +#line 12684 "parser.c" break; case 1314: /* expr_token: expr_token '(' */ -#line 6750 "parser.y" +#line 6759 "parser.y" { push_expr ('(', NULL); } -#line 12631 "parser.c" +#line 12690 "parser.c" break; case 1315: /* expr_token: expr_token '+' */ -#line 6752 "parser.y" +#line 6761 "parser.y" { push_expr ('+', NULL); } -#line 12637 "parser.c" +#line 12696 "parser.c" break; case 1316: /* expr_token: expr_token '-' */ -#line 6753 "parser.y" +#line 6762 "parser.y" { push_expr ('-', NULL); } -#line 12643 "parser.c" +#line 12702 "parser.c" break; case 1317: /* expr_token: expr_token '^' */ -#line 6754 "parser.y" +#line 6763 "parser.y" { push_expr ('^', NULL); } -#line 12649 "parser.c" +#line 12708 "parser.c" break; case 1318: /* expr_token: expr_token NOT */ -#line 6756 "parser.y" +#line 6765 "parser.y" { push_expr ('!', NULL); } -#line 12655 "parser.c" +#line 12714 "parser.c" break; case 1319: /* expr_token: expr_tokens NOT */ -#line 6757 "parser.y" +#line 6766 "parser.y" { push_expr ('!', NULL); } -#line 12661 "parser.c" +#line 12720 "parser.c" break; case 1320: /* expr_token: expr_tokens '+' */ -#line 6759 "parser.y" +#line 6768 "parser.y" { push_expr ('+', NULL); } -#line 12667 "parser.c" +#line 12726 "parser.c" break; case 1321: /* expr_token: expr_tokens '-' */ -#line 6760 "parser.y" +#line 6769 "parser.y" { push_expr ('-', NULL); } -#line 12673 "parser.c" +#line 12732 "parser.c" break; case 1322: /* expr_token: expr_tokens '*' */ -#line 6761 "parser.y" +#line 6770 "parser.y" { push_expr ('*', NULL); } -#line 12679 "parser.c" +#line 12738 "parser.c" break; case 1323: /* expr_token: expr_tokens '/' */ -#line 6762 "parser.y" +#line 6771 "parser.y" { push_expr ('/', NULL); } -#line 12685 "parser.c" +#line 12744 "parser.c" break; case 1324: /* expr_token: expr_tokens '^' */ -#line 6763 "parser.y" +#line 6772 "parser.y" { push_expr ('^', NULL); } -#line 12691 "parser.c" +#line 12750 "parser.c" break; case 1325: /* expr_token: expr_tokens eq */ -#line 6765 "parser.y" +#line 6774 "parser.y" { push_expr ('=', NULL); } -#line 12697 "parser.c" +#line 12756 "parser.c" break; case 1326: /* expr_token: expr_tokens gt */ -#line 6766 "parser.y" +#line 6775 "parser.y" { push_expr ('>', NULL); } -#line 12703 "parser.c" +#line 12762 "parser.c" break; case 1327: /* expr_token: expr_tokens lt */ -#line 6767 "parser.y" +#line 6776 "parser.y" { push_expr ('<', NULL); } -#line 12709 "parser.c" +#line 12768 "parser.c" break; case 1328: /* expr_token: expr_tokens ge */ -#line 6768 "parser.y" +#line 6777 "parser.y" { push_expr (']', NULL); } -#line 12715 "parser.c" +#line 12774 "parser.c" break; case 1329: /* expr_token: expr_tokens le */ -#line 6769 "parser.y" +#line 6778 "parser.y" { push_expr ('[', NULL); } -#line 12721 "parser.c" +#line 12780 "parser.c" break; case 1330: /* expr_token: expr_tokens NE */ -#line 6770 "parser.y" +#line 6779 "parser.y" { push_expr ('~', NULL); } -#line 12727 "parser.c" +#line 12786 "parser.c" break; case 1331: /* expr_token: expr_token eq */ -#line 6772 "parser.y" +#line 6781 "parser.y" { push_expr ('=', NULL); } -#line 12733 "parser.c" +#line 12792 "parser.c" break; case 1332: /* expr_token: expr_token gt */ -#line 6773 "parser.y" +#line 6782 "parser.y" { push_expr ('>', NULL); } -#line 12739 "parser.c" +#line 12798 "parser.c" break; case 1333: /* expr_token: expr_token lt */ -#line 6774 "parser.y" +#line 6783 "parser.y" { push_expr ('<', NULL); } -#line 12745 "parser.c" +#line 12804 "parser.c" break; case 1334: /* expr_token: expr_token ge */ -#line 6775 "parser.y" +#line 6784 "parser.y" { push_expr (']', NULL); } -#line 12751 "parser.c" +#line 12810 "parser.c" break; case 1335: /* expr_token: expr_token le */ -#line 6776 "parser.y" +#line 6785 "parser.y" { push_expr ('[', NULL); } -#line 12757 "parser.c" +#line 12816 "parser.c" break; case 1336: /* expr_token: expr_token NE */ -#line 6777 "parser.y" +#line 6786 "parser.y" { push_expr ('~', NULL); } -#line 12763 "parser.c" +#line 12822 "parser.c" break; case 1337: /* expr_token: expr_tokens AND */ -#line 6779 "parser.y" +#line 6788 "parser.y" { push_expr ('&', NULL); } -#line 12769 "parser.c" +#line 12828 "parser.c" break; case 1338: /* expr_token: expr_tokens OR */ -#line 6780 "parser.y" +#line 6789 "parser.y" { push_expr ('|', NULL); } -#line 12775 "parser.c" +#line 12834 "parser.c" break; case 1352: /* exp_list: exp */ -#line 6792 "parser.y" +#line 6801 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 12781 "parser.c" +#line 12840 "parser.c" break; case 1353: /* exp_list: exp_list e_sep exp */ -#line 6793 "parser.y" +#line 6802 "parser.y" { yyval = cb_list_add (yyvsp[-2], yyvsp[0]); } -#line 12787 "parser.c" +#line 12846 "parser.c" break; case 1357: /* exp: arith_x */ -#line 6802 "parser.y" +#line 6811 "parser.y" { yyval = yyvsp[0]; } -#line 12793 "parser.c" +#line 12852 "parser.c" break; case 1358: /* exp: exp '+' exp */ -#line 6803 "parser.y" +#line 6812 "parser.y" { yyval = cb_build_binary_op (yyvsp[-2], '+', yyvsp[0]); } -#line 12799 "parser.c" +#line 12858 "parser.c" break; case 1359: /* exp: exp '-' exp */ -#line 6804 "parser.y" +#line 6813 "parser.y" { yyval = cb_build_binary_op (yyvsp[-2], '-', yyvsp[0]); } -#line 12805 "parser.c" +#line 12864 "parser.c" break; case 1360: /* exp: exp '*' exp */ -#line 6805 "parser.y" +#line 6814 "parser.y" { yyval = cb_build_binary_op (yyvsp[-2], '*', yyvsp[0]); } -#line 12811 "parser.c" +#line 12870 "parser.c" break; case 1361: /* exp: exp '/' exp */ -#line 6806 "parser.y" +#line 6815 "parser.y" { yyval = cb_build_binary_op (yyvsp[-2], '/', yyvsp[0]); } -#line 12817 "parser.c" +#line 12876 "parser.c" break; case 1362: /* exp: '+' exp */ -#line 6807 "parser.y" +#line 6816 "parser.y" { yyval = yyvsp[0]; } -#line 12823 "parser.c" +#line 12882 "parser.c" break; case 1363: /* exp: '-' exp */ -#line 6808 "parser.y" +#line 6817 "parser.y" { yyval = cb_build_binary_op (cb_zero, '-', yyvsp[0]); } -#line 12829 "parser.c" +#line 12888 "parser.c" break; case 1364: /* exp: exp '^' exp */ -#line 6809 "parser.y" +#line 6818 "parser.y" { yyval = cb_build_binary_op (yyvsp[-2], '^', yyvsp[0]); } -#line 12835 "parser.c" +#line 12894 "parser.c" break; case 1365: /* exp: '(' exp ')' */ -#line 6810 "parser.y" +#line 6819 "parser.y" { yyval = yyvsp[-1]; } -#line 12841 "parser.c" +#line 12900 "parser.c" break; case 1366: /* linage_counter: "LINAGE-COUNTER" */ -#line 6822 "parser.y" +#line 6831 "parser.y" { if (current_linage > 1) { cb_error (_("LINAGE-COUNTER must be qualified here")); @@ -12853,11 +12912,11 @@ yyparse (void) yyval = linage_file->linage_ctr; } } -#line 12857 "parser.c" +#line 12916 "parser.c" break; case 1367: /* linage_counter: "LINAGE-COUNTER" in_of "Identifier" */ -#line 6834 "parser.y" +#line 6843 "parser.y" { if (CB_FILE_P (cb_ref (yyvsp[0]))) { yyval = CB_FILE (cb_ref (yyvsp[0]))->linage_ctr; @@ -12866,29 +12925,29 @@ yyparse (void) yyval = cb_error_node; } } -#line 12870 "parser.c" +#line 12929 "parser.c" break; case 1368: /* arithmetic_x_list: arithmetic_x */ -#line 6848 "parser.y" +#line 6857 "parser.y" { yyval = yyvsp[0]; } -#line 12876 "parser.c" +#line 12935 "parser.c" break; case 1369: /* arithmetic_x_list: arithmetic_x_list arithmetic_x */ -#line 6850 "parser.y" +#line 6859 "parser.y" { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); } -#line 12882 "parser.c" +#line 12941 "parser.c" break; case 1370: /* arithmetic_x: x flag_rounded */ -#line 6854 "parser.y" +#line 6863 "parser.y" { yyval = cb_build_pair (yyvsp[0], yyvsp[-1]); } -#line 12888 "parser.c" +#line 12947 "parser.c" break; case 1371: /* record_name: qualified_word */ -#line 6861 "parser.y" +#line 6870 "parser.y" { cb_tree x; cb_tree r; @@ -12905,11 +12964,11 @@ yyparse (void) } yyval = x; } -#line 12909 "parser.c" +#line 12968 "parser.c" break; case 1372: /* table_name: qualified_word */ -#line 6883 "parser.y" +#line 6892 "parser.y" { cb_tree x; @@ -12924,19 +12983,19 @@ yyparse (void) yyval = yyvsp[0]; } } -#line 12928 "parser.c" +#line 12987 "parser.c" break; case 1373: /* file_name_list: file_name */ -#line 6903 "parser.y" +#line 6912 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 12936 "parser.c" +#line 12995 "parser.c" break; case 1374: /* file_name_list: file_name_list file_name */ -#line 6907 "parser.y" +#line 6916 "parser.y" { cb_tree l; @@ -12949,11 +13008,11 @@ yyparse (void) yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } } -#line 12953 "parser.c" +#line 13012 "parser.c" break; case 1375: /* file_name: "Identifier" */ -#line 6923 "parser.y" +#line 6932 "parser.y" { if (CB_FILE_P (cb_ref (yyvsp[0]))) { yyval = yyvsp[0]; @@ -12962,106 +13021,106 @@ yyparse (void) yyval = cb_error_node; } } -#line 12966 "parser.c" +#line 13025 "parser.c" break; case 1376: /* mnemonic_name_list: mnemonic_name */ -#line 6936 "parser.y" +#line 6945 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 12972 "parser.c" +#line 13031 "parser.c" break; case 1377: /* mnemonic_name_list: mnemonic_name_list mnemonic_name */ -#line 6938 "parser.y" +#line 6947 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 12978 "parser.c" +#line 13037 "parser.c" break; case 1378: /* mnemonic_name: "MNEMONIC NAME" */ -#line 6942 "parser.y" +#line 6951 "parser.y" { yyval = yyvsp[0]; } -#line 12984 "parser.c" +#line 13043 "parser.c" break; case 1379: /* procedure_name_list: %empty */ -#line 6948 "parser.y" +#line 6957 "parser.y" { yyval = NULL; } -#line 12990 "parser.c" +#line 13049 "parser.c" break; case 1380: /* procedure_name_list: procedure_name_list procedure_name */ -#line 6950 "parser.y" +#line 6959 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 12996 "parser.c" +#line 13055 "parser.c" break; case 1381: /* procedure_name: label */ -#line 6955 "parser.y" +#line 6964 "parser.y" { yyval = yyvsp[0]; CB_REFERENCE (yyval)->offset = CB_TREE (current_section); current_program->label_list = cb_cons (yyval, current_program->label_list); } -#line 13006 "parser.c" +#line 13065 "parser.c" break; case 1385: /* integer_label: "Literal" */ -#line 6970 "parser.y" +#line 6979 "parser.y" { yyval = cb_build_reference ((char *)(CB_LITERAL (yyvsp[0])->data)); yyval->source_file = yyvsp[0]->source_file; yyval->source_line = yyvsp[0]->source_line; } -#line 13016 "parser.c" +#line 13075 "parser.c" break; case 1386: /* reference_list: reference */ -#line 6980 "parser.y" +#line 6989 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 13022 "parser.c" +#line 13081 "parser.c" break; case 1387: /* reference_list: reference_list reference */ -#line 6981 "parser.y" +#line 6990 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 13028 "parser.c" +#line 13087 "parser.c" break; case 1388: /* reference: qualified_word */ -#line 6986 "parser.y" +#line 6995 "parser.y" { yyval = yyvsp[0]; current_program->reference_list = cb_cons (yyval, current_program->reference_list); } -#line 13037 "parser.c" +#line 13096 "parser.c" break; case 1389: /* no_reference_list: qualified_word */ -#line 6995 "parser.y" +#line 7004 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 13043 "parser.c" +#line 13102 "parser.c" break; case 1390: /* no_reference_list: no_reference_list qualified_word */ -#line 6996 "parser.y" +#line 7005 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 13049 "parser.c" +#line 13108 "parser.c" break; case 1391: /* opt_reference: %empty */ -#line 7000 "parser.y" +#line 7009 "parser.y" { yyval = NULL; } -#line 13055 "parser.c" +#line 13114 "parser.c" break; case 1392: /* opt_reference: reference */ -#line 7001 "parser.y" +#line 7010 "parser.y" { yyval = yyvsp[0]; } -#line 13061 "parser.c" +#line 13120 "parser.c" break; case 1395: /* undefined_word: "Identifier" */ -#line 7013 "parser.y" +#line 7022 "parser.y" { yyval = yyvsp[0]; if (CB_REFERENCE (yyval)->word->count > 0) { @@ -13069,160 +13128,160 @@ yyparse (void) yyval = cb_error_node; } } -#line 13073 "parser.c" +#line 13132 "parser.c" break; case 1396: /* target_x_list: target_x */ -#line 7032 "parser.y" +#line 7041 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 13079 "parser.c" +#line 13138 "parser.c" break; case 1397: /* target_x_list: target_x_list target_x */ -#line 7033 "parser.y" +#line 7042 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 13085 "parser.c" +#line 13144 "parser.c" break; case 1399: /* target_x: ADDRESS _of identifier_1 */ -#line 7038 "parser.y" +#line 7047 "parser.y" { yyval = cb_build_address (yyvsp[0]); } -#line 13091 "parser.c" +#line 13150 "parser.c" break; case 1400: /* x_list: x */ -#line 7042 "parser.y" +#line 7051 "parser.y" { yyval = cb_list_init (yyvsp[0]); } -#line 13097 "parser.c" +#line 13156 "parser.c" break; case 1401: /* x_list: x_list x */ -#line 7043 "parser.y" +#line 7052 "parser.y" { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); } -#line 13103 "parser.c" +#line 13162 "parser.c" break; case 1403: /* x: LENGTH _of identifier_1 */ -#line 7048 "parser.y" +#line 7057 "parser.y" { yyval = cb_build_length (yyvsp[0]); } -#line 13109 "parser.c" +#line 13168 "parser.c" break; case 1404: /* x: LENGTH _of basic_literal */ -#line 7049 "parser.y" +#line 7058 "parser.y" { yyval = cb_build_length (yyvsp[0]); } -#line 13115 "parser.c" +#line 13174 "parser.c" break; case 1405: /* x: LENGTH _of function */ -#line 7050 "parser.y" +#line 7059 "parser.y" { yyval = cb_build_length (yyvsp[0]); } -#line 13121 "parser.c" +#line 13180 "parser.c" break; case 1406: /* x: ADDRESS _of prog_or_entry alnum_or_id */ -#line 7051 "parser.y" +#line 7060 "parser.y" { yyval = cb_build_ppointer (yyvsp[0]); } -#line 13127 "parser.c" +#line 13186 "parser.c" break; case 1407: /* x: ADDRESS _of identifier_1 */ -#line 7052 "parser.y" +#line 7061 "parser.y" { yyval = cb_build_address (yyvsp[0]); } -#line 13133 "parser.c" +#line 13192 "parser.c" break; case 1412: /* arith_x: LENGTH _of identifier_1 */ -#line 7060 "parser.y" +#line 7069 "parser.y" { yyval = cb_build_length (yyvsp[0]); } -#line 13139 "parser.c" +#line 13198 "parser.c" break; case 1413: /* arith_x: LENGTH _of basic_literal */ -#line 7061 "parser.y" +#line 7070 "parser.y" { yyval = cb_build_length (yyvsp[0]); } -#line 13145 "parser.c" +#line 13204 "parser.c" break; case 1414: /* arith_x: LENGTH _of function */ -#line 7062 "parser.y" +#line 7071 "parser.y" { yyval = cb_build_length (yyvsp[0]); } -#line 13151 "parser.c" +#line 13210 "parser.c" break; case 1420: /* alnum_or_id: identifier_1 */ -#line 7074 "parser.y" +#line 7083 "parser.y" { yyval = yyvsp[0]; } -#line 13157 "parser.c" +#line 13216 "parser.c" break; case 1421: /* alnum_or_id: "Literal" */ -#line 7075 "parser.y" +#line 7084 "parser.y" { yyval = yyvsp[0]; } -#line 13163 "parser.c" +#line 13222 "parser.c" break; case 1433: /* num_id_or_lit: ZERO */ -#line 7109 "parser.y" +#line 7118 "parser.y" { yyval = cb_zero; } -#line 13169 "parser.c" +#line 13228 "parser.c" break; case 1434: /* identifier: identifier_1 */ -#line 7117 "parser.y" +#line 7126 "parser.y" { yyval = cb_build_identifier (yyvsp[0]); } -#line 13175 "parser.c" +#line 13234 "parser.c" break; case 1435: /* identifier_1: qualified_word */ -#line 7121 "parser.y" +#line 7130 "parser.y" { yyval = yyvsp[0]; } -#line 13181 "parser.c" +#line 13240 "parser.c" break; case 1436: /* identifier_1: qualified_word subref */ -#line 7122 "parser.y" +#line 7131 "parser.y" { yyval = yyvsp[-1]; } -#line 13187 "parser.c" +#line 13246 "parser.c" break; case 1437: /* identifier_1: qualified_word refmod */ -#line 7123 "parser.y" +#line 7132 "parser.y" { yyval = yyvsp[-1]; } -#line 13193 "parser.c" +#line 13252 "parser.c" break; case 1438: /* identifier_1: qualified_word subref refmod */ -#line 7124 "parser.y" +#line 7133 "parser.y" { yyval = yyvsp[-2]; } -#line 13199 "parser.c" +#line 13258 "parser.c" break; case 1439: /* qualified_word: "Identifier" */ -#line 7128 "parser.y" +#line 7137 "parser.y" { yyval = yyvsp[0]; } -#line 13205 "parser.c" +#line 13264 "parser.c" break; case 1440: /* qualified_word: "Identifier" in_of qualified_word */ -#line 7129 "parser.y" +#line 7138 "parser.y" { yyval = yyvsp[-2]; CB_REFERENCE (yyvsp[-2])->chain = yyvsp[0]; } -#line 13211 "parser.c" +#line 13270 "parser.c" break; case 1441: /* subref: '(' exp_list ')' */ -#line 7134 "parser.y" +#line 7143 "parser.y" { if (cb_ref (yyvsp[-3]) != cb_error_node) { yyval = yyvsp[-3]; CB_REFERENCE (yyvsp[-3])->subs = cb_list_reverse (yyvsp[-1]); } } -#line 13222 "parser.c" +#line 13281 "parser.c" break; case 1442: /* refmod: '(' exp ':' ')' */ -#line 7144 "parser.y" +#line 7153 "parser.y" { if (cb_ref (yyvsp[-4]) != cb_error_node) { CB_REFERENCE (yyvsp[-4])->value = CB_TREE (cb_field (yyvsp[-4])); @@ -13240,11 +13299,11 @@ yyparse (void) CB_REFERENCE (yyvsp[-4])->offset = yyvsp[-2]; } } -#line 13244 "parser.c" +#line 13303 "parser.c" break; case 1443: /* refmod: '(' exp ':' exp ')' */ -#line 7162 "parser.y" +#line 7171 "parser.y" { if (cb_ref (yyvsp[-5]) != cb_error_node) { CB_REFERENCE (yyvsp[-5])->value = CB_TREE (cb_field (yyvsp[-5])); @@ -13264,11 +13323,11 @@ yyparse (void) CB_REFERENCE (yyvsp[-5])->length = yyvsp[-1]; } } -#line 13268 "parser.c" +#line 13327 "parser.c" break; case 1444: /* integer: "Literal" */ -#line 7189 "parser.y" +#line 7198 "parser.y" { if (cb_tree_category (yyvsp[0]) != CB_CATEGORY_NUMERIC) { cb_error (_("Integer value expected")); @@ -13277,437 +13336,437 @@ yyparse (void) } yyval = yyvsp[0]; } -#line 13281 "parser.c" +#line 13340 "parser.c" break; case 1445: /* literal: basic_literal */ -#line 7200 "parser.y" +#line 7209 "parser.y" { yyval = yyvsp[0]; } -#line 13287 "parser.c" +#line 13346 "parser.c" break; case 1446: /* literal: ALL basic_value */ -#line 7202 "parser.y" +#line 7211 "parser.y" { yyval = yyvsp[0]; if (CB_LITERAL_P (yyvsp[0])) { CB_LITERAL (yyvsp[0])->all = 1; } } -#line 13298 "parser.c" +#line 13357 "parser.c" break; case 1447: /* basic_literal: basic_value */ -#line 7211 "parser.y" +#line 7220 "parser.y" { yyval = yyvsp[0]; } -#line 13304 "parser.c" +#line 13363 "parser.c" break; case 1448: /* basic_literal: basic_literal '&' basic_value */ -#line 7212 "parser.y" +#line 7221 "parser.y" { yyval = cb_concat_literals (yyvsp[-2], yyvsp[0]); } -#line 13310 "parser.c" +#line 13369 "parser.c" break; case 1449: /* basic_value: "Literal" */ -#line 7216 "parser.y" +#line 7225 "parser.y" { yyval = yyvsp[0]; } -#line 13316 "parser.c" +#line 13375 "parser.c" break; case 1450: /* basic_value: SPACE */ -#line 7217 "parser.y" +#line 7226 "parser.y" { yyval = cb_space; } -#line 13322 "parser.c" +#line 13381 "parser.c" break; case 1451: /* basic_value: ZERO */ -#line 7218 "parser.y" +#line 7227 "parser.y" { yyval = cb_zero; } -#line 13328 "parser.c" +#line 13387 "parser.c" break; case 1452: /* basic_value: QUOTE */ -#line 7219 "parser.y" +#line 7228 "parser.y" { yyval = cb_quote; } -#line 13334 "parser.c" +#line 13393 "parser.c" break; case 1453: /* basic_value: "HIGH-VALUE" */ -#line 7220 "parser.y" +#line 7229 "parser.y" { yyval = cb_high; } -#line 13340 "parser.c" +#line 13399 "parser.c" break; case 1454: /* basic_value: "LOW-VALUE" */ -#line 7221 "parser.y" +#line 7230 "parser.y" { yyval = cb_low; } -#line 13346 "parser.c" +#line 13405 "parser.c" break; case 1455: /* basic_value: "NULL" */ -#line 7222 "parser.y" +#line 7231 "parser.y" { yyval = cb_null; } -#line 13352 "parser.c" +#line 13411 "parser.c" break; case 1456: /* function: "FUNCTION CURRENT-DATE" func_refmod */ -#line 7231 "parser.y" +#line 7240 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-1], NULL, yyvsp[0]); } -#line 13360 "parser.c" +#line 13419 "parser.c" break; case 1457: /* function: "FUNCTION WHEN-COMPILED" func_refmod */ -#line 7235 "parser.y" +#line 7244 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-1], NULL, yyvsp[0]); } -#line 13368 "parser.c" +#line 13427 "parser.c" break; case 1458: /* function: "FUNCTION UPPER-CASE" '(' exp ')' func_refmod */ -#line 7239 "parser.y" +#line 7248 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-4], cb_list_init (yyvsp[-2]), yyvsp[0]); } -#line 13376 "parser.c" +#line 13435 "parser.c" break; case 1459: /* function: "FUNCTION LOWER-CASE" '(' exp ')' func_refmod */ -#line 7243 "parser.y" +#line 7252 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-4], cb_list_init (yyvsp[-2]), yyvsp[0]); } -#line 13384 "parser.c" +#line 13443 "parser.c" break; case 1460: /* function: "FUNCTION REVERSE" '(' exp ')' func_refmod */ -#line 7247 "parser.y" +#line 7256 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-4], cb_list_init (yyvsp[-2]), yyvsp[0]); } -#line 13392 "parser.c" +#line 13451 "parser.c" break; case 1461: /* function: "FUNCTION CONCATENATE" '(' exp_list ')' func_refmod */ -#line 7251 "parser.y" +#line 7260 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-4], yyvsp[-2], yyvsp[0]); } -#line 13400 "parser.c" +#line 13459 "parser.c" break; case 1462: /* function: "FUNCTION SUBSTITUTE" '(' exp_list ')' func_refmod */ -#line 7255 "parser.y" +#line 7264 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-4], yyvsp[-2], yyvsp[0]); } -#line 13408 "parser.c" +#line 13467 "parser.c" break; case 1463: /* function: "FUNCTION SUBSTITUTE-CASE" '(' exp_list ')' func_refmod */ -#line 7259 "parser.y" +#line 7268 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-4], yyvsp[-2], yyvsp[0]); } -#line 13416 "parser.c" +#line 13475 "parser.c" break; case 1464: /* function: "FUNCTION TRIM" '(' trim_args ')' func_refmod */ -#line 7263 "parser.y" +#line 7272 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-4], yyvsp[-2], yyvsp[0]); } -#line 13424 "parser.c" +#line 13483 "parser.c" break; case 1465: /* function: "FUNCTION NUMVALC" '(' numvalc_args ')' */ -#line 7267 "parser.y" +#line 7276 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-3], yyvsp[-1], NULL); } -#line 13432 "parser.c" +#line 13491 "parser.c" break; case 1466: /* function: "FUNCTION LOCALE" '(' locale_dt_args ')' func_refmod */ -#line 7271 "parser.y" +#line 7280 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-4], yyvsp[-2], yyvsp[0]); } -#line 13440 "parser.c" +#line 13499 "parser.c" break; case 1467: /* function: "FUNCTION" func_args */ -#line 7275 "parser.y" +#line 7284 "parser.y" { yyval = cb_build_intrinsic (yyvsp[-1], yyvsp[0], NULL); } -#line 13448 "parser.c" +#line 13507 "parser.c" break; case 1468: /* func_refmod: %empty */ -#line 7281 "parser.y" +#line 7290 "parser.y" { yyval = NULL; } -#line 13454 "parser.c" +#line 13513 "parser.c" break; case 1469: /* func_refmod: '(' exp ':' ')' */ -#line 7282 "parser.y" +#line 7291 "parser.y" { yyval = cb_build_pair (yyvsp[-2], NULL); } -#line 13460 "parser.c" +#line 13519 "parser.c" break; case 1470: /* func_refmod: '(' exp ':' exp ')' */ -#line 7283 "parser.y" +#line 7292 "parser.y" { yyval = cb_build_pair (yyvsp[-3], yyvsp[-1]); } -#line 13466 "parser.c" +#line 13525 "parser.c" break; case 1471: /* func_args: %empty */ -#line 7287 "parser.y" +#line 7296 "parser.y" { yyval = NULL; } -#line 13472 "parser.c" +#line 13531 "parser.c" break; case 1472: /* func_args: '(' list_func_args ')' */ -#line 7288 "parser.y" +#line 7297 "parser.y" { yyval = yyvsp[-1]; } -#line 13478 "parser.c" +#line 13537 "parser.c" break; case 1473: /* list_func_args: %empty */ -#line 7292 "parser.y" +#line 7301 "parser.y" { yyval = NULL; } -#line 13484 "parser.c" +#line 13543 "parser.c" break; case 1474: /* list_func_args: exp_list */ -#line 7293 "parser.y" +#line 7302 "parser.y" { yyval = yyvsp[0]; } -#line 13490 "parser.c" +#line 13549 "parser.c" break; case 1475: /* trim_args: exp */ -#line 7299 "parser.y" +#line 7308 "parser.y" { cb_tree x; x = cb_list_init (yyvsp[0]); yyval = cb_list_add (x, cb_int0); } -#line 13501 "parser.c" +#line 13560 "parser.c" break; case 1476: /* trim_args: exp e_sep LEADING */ -#line 7306 "parser.y" +#line 7315 "parser.y" { cb_tree x; x = cb_list_init (yyvsp[-2]); yyval = cb_list_add (x, cb_int1); } -#line 13512 "parser.c" +#line 13571 "parser.c" break; case 1477: /* trim_args: exp e_sep TRAILING */ -#line 7313 "parser.y" +#line 7322 "parser.y" { cb_tree x; x = cb_list_init (yyvsp[-2]); yyval = cb_list_add (x, cb_int2); } -#line 13523 "parser.c" +#line 13582 "parser.c" break; case 1478: /* numvalc_args: exp */ -#line 7323 "parser.y" +#line 7332 "parser.y" { cb_tree x; x = cb_list_init (yyvsp[0]); yyval = cb_list_add (x, cb_null); } -#line 13534 "parser.c" +#line 13593 "parser.c" break; case 1479: /* numvalc_args: exp e_sep exp */ -#line 7330 "parser.y" +#line 7339 "parser.y" { cb_tree x; x = cb_list_init (yyvsp[-2]); yyval = cb_list_add (x, yyvsp[0]); } -#line 13545 "parser.c" +#line 13604 "parser.c" break; case 1480: /* locale_dt_args: exp */ -#line 7340 "parser.y" +#line 7349 "parser.y" { cb_tree x; x = cb_list_init (yyvsp[0]); yyval = cb_list_add (x, cb_null); } -#line 13556 "parser.c" +#line 13615 "parser.c" break; case 1481: /* locale_dt_args: exp e_sep reference */ -#line 7347 "parser.y" +#line 7356 "parser.y" { cb_tree x; x = cb_list_init (yyvsp[-2]); yyval = cb_list_add (x, cb_ref (yyvsp[0])); } -#line 13567 "parser.c" +#line 13626 "parser.c" break; case 1482: /* not_const_word: %empty */ -#line 7360 "parser.y" +#line 7369 "parser.y" { non_const_word = 1; } -#line 13575 "parser.c" +#line 13634 "parser.c" break; case 1483: /* flag_all: %empty */ -#line 7370 "parser.y" +#line 7379 "parser.y" { yyval = cb_int0; } -#line 13581 "parser.c" +#line 13640 "parser.c" break; case 1484: /* flag_all: ALL */ -#line 7371 "parser.y" +#line 7380 "parser.y" { yyval = cb_int1; } -#line 13587 "parser.c" +#line 13646 "parser.c" break; case 1485: /* flag_duplicates: %empty */ -#line 7375 "parser.y" +#line 7384 "parser.y" { yyval = cb_int0; } -#line 13593 "parser.c" +#line 13652 "parser.c" break; case 1486: /* flag_duplicates: with_dups */ -#line 7376 "parser.y" +#line 7385 "parser.y" { yyval = cb_int1; } -#line 13599 "parser.c" +#line 13658 "parser.c" break; case 1487: /* flag_initialized: %empty */ -#line 7380 "parser.y" +#line 7389 "parser.y" { yyval = NULL; } -#line 13605 "parser.c" +#line 13664 "parser.c" break; case 1488: /* flag_initialized: INITIALIZED */ -#line 7381 "parser.y" +#line 7390 "parser.y" { yyval = cb_int1; } -#line 13611 "parser.c" +#line 13670 "parser.c" break; case 1489: /* flag_next: %empty */ -#line 7385 "parser.y" +#line 7394 "parser.y" { yyval = cb_int0; } -#line 13617 "parser.c" +#line 13676 "parser.c" break; case 1490: /* flag_next: NEXT */ -#line 7386 "parser.y" +#line 7395 "parser.y" { yyval = cb_int1; } -#line 13623 "parser.c" +#line 13682 "parser.c" break; case 1491: /* flag_next: PREVIOUS */ -#line 7387 "parser.y" +#line 7396 "parser.y" { yyval = cb_int2; } -#line 13629 "parser.c" +#line 13688 "parser.c" break; case 1492: /* flag_not: %empty */ -#line 7391 "parser.y" +#line 7400 "parser.y" { yyval = cb_int0; } -#line 13635 "parser.c" +#line 13694 "parser.c" break; case 1493: /* flag_not: NOT */ -#line 7392 "parser.y" +#line 7401 "parser.y" { yyval = cb_int1; } -#line 13641 "parser.c" +#line 13700 "parser.c" break; case 1494: /* flag_optional: %empty */ -#line 7396 "parser.y" +#line 7405 "parser.y" { yyval = cb_int0; } -#line 13647 "parser.c" +#line 13706 "parser.c" break; case 1495: /* flag_optional: OPTIONAL */ -#line 7397 "parser.y" +#line 7406 "parser.y" { yyval = cb_int1; } -#line 13653 "parser.c" +#line 13712 "parser.c" break; case 1496: /* flag_rounded: %empty */ -#line 7401 "parser.y" +#line 7410 "parser.y" { yyval = cb_int0; } -#line 13659 "parser.c" +#line 13718 "parser.c" break; case 1497: /* flag_rounded: ROUNDED */ -#line 7402 "parser.y" +#line 7411 "parser.y" { yyval = cb_int1; } -#line 13665 "parser.c" +#line 13724 "parser.c" break; case 1498: /* flag_separate: %empty */ -#line 7406 "parser.y" +#line 7415 "parser.y" { yyval = cb_int0; } -#line 13671 "parser.c" +#line 13730 "parser.c" break; case 1499: /* flag_separate: SEPARATE _character */ -#line 7407 "parser.y" +#line 7416 "parser.y" { yyval = cb_int1; } -#line 13677 "parser.c" +#line 13736 "parser.c" break; case 1511: /* _also: ALSO */ -#line 7420 "parser.y" +#line 7429 "parser.y" { yyval = cb_int1; } -#line 13683 "parser.c" +#line 13742 "parser.c" break; case 1540: /* _is: %empty */ -#line 7435 "parser.y" +#line 7444 "parser.y" { yyval = NULL; } -#line 13689 "parser.c" +#line 13748 "parser.c" break; case 1541: /* _is: IS */ -#line 7435 "parser.y" +#line 7444 "parser.y" { yyval = cb_int1; } -#line 13695 "parser.c" +#line 13754 "parser.c" break; case 1552: /* _literal: %empty */ -#line 7440 "parser.y" +#line 7449 "parser.y" { yyval = NULL; } -#line 13701 "parser.c" +#line 13760 "parser.c" break; case 1553: /* _literal: "Literal" */ -#line 7440 "parser.y" +#line 7449 "parser.y" { yyval = yyvsp[0]; } -#line 13707 "parser.c" +#line 13766 "parser.c" break; -#line 13711 "parser.c" +#line 13770 "parser.c" default: break; } @@ -13900,5 +13959,5 @@ yyparse (void) return yyresult; } -#line 7465 "parser.y" +#line 7474 "parser.y" diff --git a/cobj/parser.y b/cobj/parser.y index 37265cd0..d9b01c2e 100644 --- a/cobj/parser.y +++ b/cobj/parser.y @@ -2027,17 +2027,26 @@ record_delimiter_clause: /* RECORD KEY clause */ record_key_clause: - RECORD _key _is reference + RECORD _key _is reference flag_duplicates { + + if($5 == cb_int1) { + cb_error (_("Record keys with duplicates are not yet supported")); + } + current_file->key = $4; } -| RECORD _key _is reference key_is_eq split_key_list +| RECORD _key _is reference key_is_eq split_key_list flag_duplicates { /* SPLIT KEY use */ cb_tree composite_key; struct cb_key_component *comp; + if($7 == cb_int1) { + cb_error (_("Record keys with duplicates are not yet supported")); + } + /* generate field (in w-s) for composite-key */ if (!$5) { /* dialect */ diff --git a/cobj/warning-help.def b/cobj/warning-help.def index 27f8ef53..d00668c9 100644 --- a/cobj/warning-help.def +++ b/cobj/warning-help.def @@ -38,6 +38,9 @@ CB_WARNDEF (cb_warn_constant, "constant", 1, CB_WARNDEF (cb_warn_parentheses, "parentheses", 1, N_("Warn lack of parentheses around AND within OR")) +CB_WARNDEF (cb_warn_strict_typing, "strict-typing", 1, + N_("Warn type mismatch strictly")) + CB_WARNDEF (cb_warn_call_params, "call-params", 0, N_("Warn non 01/77 items for CALL params")) diff --git a/configure b/configure index fdfc3b37..5c712712 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for opensource COBOL 4J 1.0.21. +# Generated by GNU Autoconf 2.71 for opensource COBOL 4J 1.0.22. # # Report bugs to . # @@ -620,9 +620,9 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='opensource COBOL 4J' -PACKAGE_TARNAME='opensource-cobol-4j-1.0.21' -PACKAGE_VERSION='1.0.21' -PACKAGE_STRING='opensource COBOL 4J 1.0.21' +PACKAGE_TARNAME='opensource-cobol-4j-1.0.22' +PACKAGE_VERSION='1.0.22' +PACKAGE_STRING='opensource COBOL 4J 1.0.22' PACKAGE_BUGREPORT='ws-opensource-cobol-contact@osscons.jp' PACKAGE_URL='' @@ -1411,7 +1411,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures opensource COBOL 4J 1.0.21 to adapt to many kinds of systems. +\`configure' configures opensource COBOL 4J 1.0.22 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1461,7 +1461,7 @@ Fine tuning of the installation directories: --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root - [DATAROOTDIR/doc/opensource-cobol-4j-1.0.21] + [DATAROOTDIR/doc/opensource-cobol-4j-1.0.22] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -1483,7 +1483,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of opensource COBOL 4J 1.0.21:";; + short | recursive ) echo "Configuration of opensource COBOL 4J 1.0.22:";; esac cat <<\_ACEOF @@ -1611,7 +1611,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -opensource COBOL 4J configure 1.0.21 +opensource COBOL 4J configure 1.0.22 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2099,7 +2099,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by opensource COBOL 4J $as_me 1.0.21, which was +It was created by opensource COBOL 4J $as_me 1.0.22, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3397,8 +3397,8 @@ fi # Define the identity of the package. - PACKAGE='opensource-cobol-4j-1.0.21' - VERSION='1.0.21' + PACKAGE='opensource-cobol-4j-1.0.22' + VERSION='1.0.22' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -24216,7 +24216,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by opensource COBOL 4J $as_me 1.0.21, which was +This file was extended by opensource COBOL 4J $as_me 1.0.22, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -24284,7 +24284,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -opensource COBOL 4J config.status 1.0.21 +opensource COBOL 4J config.status 1.0.22 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 7c273453..098e0f2c 100644 --- a/configure.ac +++ b/configure.ac @@ -19,7 +19,7 @@ AC_PREREQ(2.59) -AC_INIT([opensource COBOL 4J],[1.0.21],[ws-opensource-cobol-contact@osscons.jp],[opensource-cobol-4j-1.0.21]) +AC_INIT([opensource COBOL 4J],[1.0.22],[ws-opensource-cobol-contact@osscons.jp],[opensource-cobol-4j-1.0.22]) AC_CONFIG_SRCDIR([libcobj.h]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_TESTDIR([tests]) diff --git a/doc/requirements-all.md b/doc/requirements-all.md index 24e39757..23dbb87f 100644 --- a/doc/requirements-all.md +++ b/doc/requirements-all.md @@ -1,5 +1,8 @@ | version (opensource COBOL 4J) | OS | version (JDK) | | -- | -- | -- | +| 1.0.22 | Ubuntu 22.04 | 21 | +| 1.0.22 | AlmaLinux 9 | 11 | +| 1.0.22 | Amazon Linux 2023 | 21 | | 1.0.21 | Ubuntu 22.04 | 21 | | 1.0.21 | AlmaLinux 9 | 11 | | 1.0.21 | Amazon Linux 2023 | 21 | diff --git a/libcobj/Makefile.am b/libcobj/Makefile.am index 60a21ef4..a1f0cec2 100644 --- a/libcobj/Makefile.am +++ b/libcobj/Makefile.am @@ -1,5 +1,6 @@ TARGET_JAR = app/build/libs/libcobj.jar COBJ_IDX = bin/cobj-idx +COBJ_API = bin/cobj-api SRC_FILES = \ settings.gradle.kts \ @@ -18,7 +19,6 @@ SRC_FILES = \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/GetInt.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolCheck.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolControl.java \ - ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolFrame.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolIntrinsic.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolString.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/GetAbstractCobolField.java \ @@ -46,7 +46,6 @@ SRC_FILES = \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolExceptionInfo.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolExceptionTabCode.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolRuntimeException.java \ - ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolUndefinedException.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/RuntimeExitHandler.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/file/CobolFile.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/file/CobolFileSort.java \ @@ -71,7 +70,7 @@ SRC_FILES = \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/ui/CobolCallResult.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/ui/CobolResultInt.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/ui/CobolResultString.java \ - ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/ui/CobolResultDouble.java \ + ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/ui/CobolResultDouble.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/IndexedFileUtilMain.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/ErrorLib.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/LoadResult.java \ @@ -80,7 +79,12 @@ SRC_FILES = \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/RecordWriter.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/StdinRecordReader.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/FileSeqRecordReader.java \ - ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/FileLineSeqRecordReader.java + ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/FileLineSeqRecordReader.java\ + ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFiles.java \ + ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesOptions.java + +TEST_FILE = \ + ./app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesTest.java all: $(TARGET_JAR) @@ -90,7 +94,12 @@ $(TARGET_JAR): $(SRC_FILES) clean: rm -rf $(TARGET_JAR) -install: $(TARGET_JAR) $(COBJ_IDX) +install: $(TARGET_JAR) $(COBJ_IDX) $(COBJ_API) mkdir -p $(DESTDIR)$(prefix)/lib/opensourcecobol4j/ install $(TARGET_JAR) $(DESTDIR)$(prefix)/lib/opensourcecobol4j/ install $(COBJ_IDX) $(DESTDIR)$(prefix)/bin/ + install $(COBJ_API) $(DESTDIR)$(prefix)/bin/ + +test: + ./gradlew test + rm -f ./app/testController.java ./app/testRecord.java diff --git a/libcobj/Makefile.in b/libcobj/Makefile.in index 6290111c..97b8e27f 100644 --- a/libcobj/Makefile.in +++ b/libcobj/Makefile.in @@ -281,6 +281,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ TARGET_JAR = app/build/libs/libcobj.jar COBJ_IDX = bin/cobj-idx +COBJ_API = bin/cobj-api SRC_FILES = \ settings.gradle.kts \ ./app/build.gradle.kts \ @@ -298,7 +299,6 @@ SRC_FILES = \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/GetInt.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolCheck.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolControl.java \ - ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolFrame.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolIntrinsic.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolString.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/GetAbstractCobolField.java \ @@ -326,7 +326,6 @@ SRC_FILES = \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolExceptionInfo.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolExceptionTabCode.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolRuntimeException.java \ - ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolUndefinedException.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/RuntimeExitHandler.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/file/CobolFile.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/file/CobolFileSort.java \ @@ -360,7 +359,12 @@ SRC_FILES = \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/RecordWriter.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/StdinRecordReader.java \ ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/FileSeqRecordReader.java \ - ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/FileLineSeqRecordReader.java + ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/indexed_file/FileLineSeqRecordReader.java\ + ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFiles.java \ + ./app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesOptions.java + +TEST_FILE = \ + ./app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesTest.java all: all-am @@ -561,10 +565,15 @@ $(TARGET_JAR): $(SRC_FILES) clean: rm -rf $(TARGET_JAR) -install: $(TARGET_JAR) $(COBJ_IDX) +install: $(TARGET_JAR) $(COBJ_IDX) $(COBJ_API) mkdir -p $(DESTDIR)$(prefix)/lib/opensourcecobol4j/ install $(TARGET_JAR) $(DESTDIR)$(prefix)/lib/opensourcecobol4j/ install $(COBJ_IDX) $(DESTDIR)$(prefix)/bin/ + install $(COBJ_API) $(DESTDIR)$(prefix)/bin/ + +test: + ./gradlew test + rm -f ./app/testController.java ./app/testRecord.java # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libcobj/app/build.gradle.kts b/libcobj/app/build.gradle.kts index 92d241d9..58c788bb 100644 --- a/libcobj/app/build.gradle.kts +++ b/libcobj/app/build.gradle.kts @@ -30,6 +30,9 @@ dependencies { implementation("com.google.guava:guava:31.1-jre") implementation("org.xerial:sqlite-jdbc:3.30.1") implementation("commons-cli:commons-cli:1.6.0") + testImplementation("org.junit.jupiter:junit-jupiter:5.9.3") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") + implementation("org.json:json:20231013") spotbugs("com.github.spotbugs:spotbugs:4.8.0") } @@ -64,7 +67,7 @@ publishing { register("gpr") { groupId = "jp.osscons.opensourcecobol" artifactId = "libcobj" - version = "1.0.21" + version = "1.0.22" from(components["java"]) } } @@ -81,3 +84,16 @@ tasks.withType().configureEach { tasks.withType { archiveClassifier.set("") } + +tasks.test { + useJUnitPlatform() + testLogging { + events("passed", "skipped", "failed") + } +} + +tasks.named("test") { + // Use JUnit Platform for unit tests. + useJUnitPlatform() +} + diff --git a/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/Const.java b/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/Const.java index b6e0ad42..b4aae738 100644 --- a/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/Const.java +++ b/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/Const.java @@ -41,5 +41,5 @@ public class Const { // TODO 標準パスの設定 public static final String COB_LIBRARY_PATH = ""; - public static final String version = "1.0.21"; + public static final String version = "1.0.22"; } diff --git a/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolFrame.java b/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolFrame.java deleted file mode 100644 index a42f4f85..00000000 --- a/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/common/CobolFrame.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2021-2022 TOKYO SYSTEM HOUSE Co., Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 3.0, - * or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; see the file COPYING.LIB. If - * not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor - * Boston, MA 02110-1301 USA - */ -package jp.osscons.opensourcecobol.libcobj.common; - -import jp.osscons.opensourcecobol.libcobj.file.CobolFile; - -/** opensource COBOLのcob_frameに対応するクラス */ -public class CobolFrame { - private int performThrough; - private int returnAddress; - private CobolFile currentSortMergeFile; - - /** - * performThroughのgetter - * - * @return this.performThrough - */ - public int getPerformThrough() { - return this.performThrough; - } - - /** - * performThroughのsetter - * - * @param performThrough this.performThroughに設定する値 - */ - public void setPerformThrough(int performThrough) { - this.performThrough = performThrough; - } - - /** - * returnAddressのgetter - * - * @return this.performThrough - */ - public int getReturnAddress() { - return this.returnAddress; - } - - /** - * returnAddressのsetter - * - * @param returnAddress this.returnAddressに設定する値 - */ - public void setReturnAddress(int returnAddress) { - this.returnAddress = returnAddress; - } - - /** - * returnAddressのgetter - * - * @return this.performThrough - */ - public CobolFile getCurrentSortMergeFile() { - return this.currentSortMergeFile; - } - - /** - * returnAddressのsetter - * - * @param currentSortMergeFile - */ - public void setCurrentSortMergeFile(CobolFile currentSortMergeFile) { - this.currentSortMergeFile = currentSortMergeFile; - } -} diff --git a/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolUndefinedException.java b/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolUndefinedException.java deleted file mode 100644 index 120d8667..00000000 --- a/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/exceptions/CobolUndefinedException.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2021-2022 TOKYO SYSTEM HOUSE Co., Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 3.0, - * or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; see the file COPYING.LIB. If - * not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor - * Boston, MA 02110-1301 USA - */ -package jp.osscons.opensourcecobol.libcobj.exceptions; - -public class CobolUndefinedException extends Exception {} diff --git a/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFiles.java b/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFiles.java new file mode 100755 index 00000000..df39b751 --- /dev/null +++ b/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFiles.java @@ -0,0 +1,213 @@ +/* + * This Java source file was generated by the Gradle 'init' task. + */ +package jp.osscons.opensourcecobol.libcobj.user_util.cobj_api; + +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.nio.file.Files; +import java.nio.file.Paths; +import org.json.JSONArray; +import org.json.JSONObject; + +public class ApiFiles { + public static void main(String[] args) { + ApiFilesOptions.getOptions(args); + + if (args.length == 0) { + System.out.println("No json file is specified."); + System.exit(1); + } + + String filePath; + try { + filePath = args[1]; + } catch (ArrayIndexOutOfBoundsException e) { + filePath = args[0]; + } + + javaCreate(filePath); + } + + public static void javaCreate(String filePath) { + try { + String json = new String(Files.readAllBytes(Paths.get(filePath))); + JSONObject obj = new JSONObject(json); + String programId = obj.getString("program_id"); + JSONArray params = obj.getJSONArray("procedure_division_using_parameters"); + + String outputDir; + FileWriter ctlFile; + FileWriter rcdFile; + + if (ApiFilesOptions.outputDir != null) { + outputDir = ApiFilesOptions.outputDir + "/"; + ctlFile = new FileWriter(outputDir + programId + "Controller.java"); + rcdFile = new FileWriter(outputDir + programId + "Record.java"); + } else { + ctlFile = new FileWriter(programId + "Controller.java"); + rcdFile = new FileWriter(programId + "Record.java"); + } + + writeController(ctlFile, programId, params); + writeRecord(rcdFile, programId, params); + + } catch (IOException e) { + e.printStackTrace(); + System.err.println("Error reading file: " + e.getMessage()); + System.exit(1); + } + } + + public static void writeController(FileWriter ctlFile, String programId, JSONArray params) { + PrintWriter ctlWriter = new PrintWriter(ctlFile); + JSONObject param; + String name; + String type; + String defaultValue; + String methodName; + String nameController = programId + "Controller"; + String nameRecord = programId + "Record"; + int i; + + if (ApiFilesOptions.packageName != null) { + ctlWriter.println("package " + ApiFilesOptions.packageName + ";"); + } else { + ctlWriter.println("package com.example.restservice;"); + } + + ctlWriter.println( + "import java.util.concurrent.atomic.AtomicLong;\n" + + "import org.springframework.web.bind.annotation.GetMapping;\n" + + "import org.springframework.web.bind.annotation.RequestParam;\n" + + "import org.springframework.web.bind.annotation.RestController;\n" + + "import jp.osscons.opensourcecobol.libcobj.ui.*;\n"); + + ctlWriter.println( + "@RestController\n" + + "public class " + + nameController + + " {\n" + + " @GetMapping(\"/" + + programId + + "\")\n" + + " public " + + nameRecord + + " " + + nameController + + "("); + + for (i = 0; i < params.length(); ++i) { + param = params.getJSONObject(i); + name = param.getString("variable_name"); + type = param.getString("java_type"); + if ("String".equals(type)) { + defaultValue = "\"\""; + } else { + defaultValue = "\"0\""; + } + + ctlWriter.print( + " @RequestParam(value = " + + "\"" + + name + + "\", defaultValue = " + + defaultValue + + ") " + + type + + " " + + name); + + if (i < params.length() - 1) { + ctlWriter.println(","); + } else { + ctlWriter.println(); + } + } + + ctlWriter.print( + " ) {\n" + + " int statuscode = 200;\n" + + " " + + programId + + " " + + programId + + "Cobol = new " + + programId + + "();\n" + + " CobolResultSet result = " + + programId + + "Cobol.execute("); + + for (i = 0; i < params.length(); ++i) { + param = params.getJSONObject(i); + name = param.getString("variable_name"); + ctlWriter.print(name); + + if (i < params.length() - 1) { + ctlWriter.print(", "); + } + } + ctlWriter.println(");\n" + " try {"); + + for (i = 0; i < params.length(); ++i) { + param = params.getJSONObject(i); + name = param.getString("variable_name"); + type = param.getString("java_type"); + if ("String".equals(type)) { + methodName = "getString"; + } else if ("int".equals(type)) { + methodName = "getInt"; + } else { + methodName = "getDouble"; + } + ctlWriter.println(" " + name + " = result." + methodName + "(" + (i + 1) + ");"); + } + + ctlWriter.print( + " } catch (Exception e) {\n" + + " statuscode = 500;\n" + + " }\n" + + " return new " + + programId + + "Record(statuscode, "); + + for (i = 0; i < params.length(); ++i) { + param = params.getJSONObject(i); + name = param.getString("variable_name"); + ctlWriter.print(name); + if (i < params.length() - 1) { + ctlWriter.print(", "); + } + } + ctlWriter.println(");\n" + " }\n" + "}"); + ctlWriter.close(); + } + + public static void writeRecord(FileWriter rcdFile, String programId, JSONArray params) { + PrintWriter rcdWriter = new PrintWriter(rcdFile); + JSONObject param; + String name; + String type; + int i; + + rcdWriter.print( + "package com.example.restservice;\n" + + "public record " + + programId + + "Record(int statuscode, "); + + for (i = 0; i < params.length(); ++i) { + param = params.getJSONObject(i); + name = param.getString("variable_name"); + type = param.getString("java_type"); + rcdWriter.print(type + " " + name); + if (i < params.length() - 1) { + rcdWriter.print(", "); + } + } + rcdWriter.println(") {}"); + rcdWriter.close(); + } +} diff --git a/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesOptions.java b/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesOptions.java new file mode 100644 index 00000000..5583910d --- /dev/null +++ b/libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesOptions.java @@ -0,0 +1,76 @@ +package jp.osscons.opensourcecobol.libcobj.user_util.cobj_api; + +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.Options; +import org.apache.commons.cli.ParseException; + +public class ApiFilesOptions { + public static String packageName; + public static String outputDir; + + public static void getOptions(String[] args) { + Options options = new Options(); + options.addOption("h", "help", false, "Prints the help message"); + options.addOption( + "jp", "java-package", true, "Specify the package name of the generated source code"); + options.addOption( + "o", + "output-dir", + true, + "Set the output destination of the java file to an arbitrary destination"); + options.addOption("v", "version", false, "Prints the version of the cobj-api"); + CommandLineParser parser = new DefaultParser(); + CommandLine cmd; + + try { + cmd = parser.parse(options, args); + } catch (ParseException e) { + printHelpMessage(); + System.exit(1); + return; + } + + if (cmd.hasOption("h")) { + printHelpMessage(); + System.exit(0); + return; + } else if (cmd.hasOption("v")) { + System.out.println("1.0.22"); + System.exit(0); + return; + } else if (cmd.getOptionValue("java-package") != null) { + String packageName = cmd.getOptionValue("java-package"); + setJavaPackage(packageName); + return; + } else if (cmd.getOptionValue("output-dir") != null) { + String outputDir = cmd.getOptionValue("output-dir"); + setOutputDir(outputDir); + return; + } + } + + private static void printHelpMessage() { + System.out.println("Usage: cobj-api [options] "); + System.out.println(); + System.out.println("Arguments:"); + System.out.println(" : a json file generated by cobj with `-info-json-dir` option"); + System.out.println(); + System.out.println("Options:"); + System.out.println(" -h, --help\t\t\t\tDisplay this message"); + System.out.println( + " -java-package=\t\tSpecify the package name of the generated source code"); + System.out.println( + " -o=, --output-dir=\t\tSet the output destination of the java file to an arbitrary destination"); + System.out.println(" -v, --version\t\t\t\tPrints the version of the cobj-api"); + } + + public static void setJavaPackage(String packageName) { + ApiFilesOptions.packageName = packageName; + } + + public static void setOutputDir(String outputDir) { + ApiFilesOptions.outputDir = outputDir; + } +} diff --git a/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesTest.java b/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesTest.java new file mode 100644 index 00000000..5612c709 --- /dev/null +++ b/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesTest.java @@ -0,0 +1,41 @@ +/* + * This Java source file was generated by the Gradle 'init' task. + */ +package jp.osscons.opensourcecobol.libcobj.user_util.cobj_api; + +import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +class ApiFilesTest { + + boolean compOutputFiles(String fileName) { + ApiFiles.javaCreate(fileName); + try { + return Arrays.equals( + Files.readAllBytes( + Paths.get( + "src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/testController.txt")), + Files.readAllBytes(Paths.get("testController.java"))) + && Arrays.equals( + Files.readAllBytes( + Paths.get( + "src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/testRecord.txt")), + Files.readAllBytes(Paths.get("testRecord.java"))); + } catch (IOException e) { + e.printStackTrace(); + return false; + } + } + + @Test + void checkOutputFiles() { + String fileName = + "src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/test.json"; + assertTrue(compOutputFiles(fileName)); + } +} diff --git a/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/test.json b/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/test.json new file mode 100644 index 00000000..c039d09c --- /dev/null +++ b/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/test.json @@ -0,0 +1,18 @@ +{ + "opensourcecobol4j_version": "1.0.21", + "program_id": "test", + "procedure_division_using_parameters": [ + { + "variable_name": "param1", + "java_type": "int" + }, + { + "variable_name": "param2", + "java_type": "double" + }, + { + "variable_name": "param3", + "java_type": "String" + } + ] +} diff --git a/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/testController.txt b/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/testController.txt new file mode 100755 index 00000000..34ff22df --- /dev/null +++ b/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/testController.txt @@ -0,0 +1,28 @@ +package com.example.restservice; +import java.util.concurrent.atomic.AtomicLong; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import jp.osscons.opensourcecobol.libcobj.ui.*; + +@RestController +public class testController { + @GetMapping("/test") + public testRecord testController( + @RequestParam(value = "param1", defaultValue = "0") int param1, + @RequestParam(value = "param2", defaultValue = "0") double param2, + @RequestParam(value = "param3", defaultValue = "") String param3 + ) { + int statuscode = 200; + test testCobol = new test(); + CobolResultSet result = testCobol.execute(param1, param2, param3); + try { + param1 = result.getInt(1); + param2 = result.getDouble(2); + param3 = result.getString(3); + } catch (Exception e) { + statuscode = 500; + } + return new testRecord(statuscode, param1, param2, param3); + } +} diff --git a/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/testRecord.txt b/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/testRecord.txt new file mode 100644 index 00000000..93bfe2f0 --- /dev/null +++ b/libcobj/app/src/test/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/testRecord.txt @@ -0,0 +1,2 @@ +package com.example.restservice; +public record testRecord(int statuscode, int param1, double param2, String param3) {} diff --git a/libcobj/bin/cobj-api b/libcobj/bin/cobj-api new file mode 100644 index 00000000..15916733 --- /dev/null +++ b/libcobj/bin/cobj-api @@ -0,0 +1,3 @@ +#!/bin/bash + +java jp.osscons.opensourcecobol.libcobj.user_util.cobj_api.ApiFiles $@ \ No newline at end of file diff --git a/libcobj/settings.gradle.kts b/libcobj/settings.gradle.kts index 33b2d4d6..6bf139b3 100644 --- a/libcobj/settings.gradle.kts +++ b/libcobj/settings.gradle.kts @@ -4,3 +4,4 @@ plugins { rootProject.name = "opensourcecobol4j" include("app") +include("cobj-api") diff --git a/tests/Makefile.am b/tests/Makefile.am index 63768592..72e9ba24 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -155,6 +155,7 @@ command_line_options_DEPENDENCIES = \ command-line-options.src/Wredefinition.at \ command-line-options.src/Wconstant.at \ command-line-options.src/Wparentheses.at \ + command-line-options.src/Wstrict-typing.at \ command-line-options.src/Wcall-params.at \ command-line-options.src/Wcolumn-overflow.at \ command-line-options.src/Wterminator.at \ @@ -210,6 +211,7 @@ misc_DEPENDENCIES = \ misc.src/compile-multiple-files.at \ misc.src/compare-large-number.at \ misc.src/validate-indexed-file-keys.at \ + misc.src/record-key-duplicates-error.at \ misc.src/copy-comments.at EXTRA_DIST = $(srcdir)/package.m4 \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 03e8fd06..5c442544 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -696,6 +696,7 @@ command_line_options_DEPENDENCIES = \ command-line-options.src/Wredefinition.at \ command-line-options.src/Wconstant.at \ command-line-options.src/Wparentheses.at \ + command-line-options.src/Wstrict-typing.at \ command-line-options.src/Wcall-params.at \ command-line-options.src/Wcolumn-overflow.at \ command-line-options.src/Wterminator.at \ @@ -751,6 +752,7 @@ misc_DEPENDENCIES = \ misc.src/compile-multiple-files.at \ misc.src/compare-large-number.at \ misc.src/validate-indexed-file-keys.at \ + misc.src/record-key-duplicates-error.at \ misc.src/copy-comments.at EXTRA_DIST = $(srcdir)/package.m4 \ diff --git a/tests/command-line-options.at b/tests/command-line-options.at index 36c07075..f07cab5c 100644 --- a/tests/command-line-options.at +++ b/tests/command-line-options.at @@ -15,6 +15,7 @@ m4_include([Wobsolete-Warchaic.at]) m4_include([Wredefinition.at]) m4_include([Wconstant.at]) m4_include([Wparentheses.at]) +m4_include([Wstrict-typing.at]) m4_include([Wcall-params.at]) m4_include([Wcolumn-overflow.at]) m4_include([Wterminator.at]) diff --git a/tests/command-line-options.src/Wstrict-typing.at b/tests/command-line-options.src/Wstrict-typing.at new file mode 100644 index 00000000..70af52b1 --- /dev/null +++ b/tests/command-line-options.src/Wstrict-typing.at @@ -0,0 +1,37 @@ +AT_SETUP([-Wstrict-typing]) + +AT_DATA([prog.cbl], +[ IDENTIFICATION DIVISION. + PROGRAM-ID. prog. + DATA DIVISION. + WORKING-STORAGE SECTION. + 01 X PIC X(5). + 01 X-EDIT PIC X(3),X(2). + 01 N PIC N(5). + 01 NUM PIC 9(5). + 01 NUM-EDIT PIC 9(3),9(2). + PROCEDURE DIVISION. + MAIN SECTION. + MOVE 12345 TO X. + MOVE 12345 TO X-EDIT. + MOVE 12345 TO N. + MOVE "12345" TO NUM. + MOVE "12345" TO NUM-EDIT. +]) + +AT_CHECK([${COBJ} -Wstrict-typing prog.cbl], [0], [], +[prog.cbl:12: Warning: Alphanumeric value is expected +prog.cbl:5: Warning: 'X' defined here as PIC X(5) +prog.cbl:13: Warning: Alphanumeric value is expected +prog.cbl:6: Warning: 'X-EDIT' defined here as PIC X(3),X(2) +prog.cbl:14: Warning: National value is expected +prog.cbl:7: Warning: 'N' defined here as PIC N(5) +prog.cbl:15: Warning: Numeric value is expected +prog.cbl:8: Warning: 'NUM' defined here as PIC 9(5) +prog.cbl:16: Warning: Numeric value is expected +prog.cbl:9: Warning: 'NUM-EDIT' defined here as PIC 9(3),9(2) +]) + +AT_CHECK([${COBJ} --help | grep '\-Wstrict-typing' > /dev/null], [0]) + +AT_CLEANUP diff --git a/tests/command-line-options.src/info-java-dir.at b/tests/command-line-options.src/info-java-dir.at index 1d49b5d6..c96cec98 100644 --- a/tests/command-line-options.src/info-java-dir.at +++ b/tests/command-line-options.src/info-java-dir.at @@ -28,7 +28,7 @@ AT_DATA([prog.cbl], [ AT_CHECK([${COBJ} -info-json-dir=./ callee.cbl prog.cbl]) AT_CHECK([cat info_callee.json], [0], [{ - "opensourcecobol4j_version": "1.0.21", + "opensourcecobol4j_version": "1.0.22", "program_id": "callee", "procedure_division_using_parameters": @<:@ { @@ -45,7 +45,7 @@ AT_CHECK([cat info_callee.json], [0], AT_CHECK([cat info_prog.json], [0], [{ - "opensourcecobol4j_version": "1.0.21", + "opensourcecobol4j_version": "1.0.22", "program_id": "prog", "procedure_division_using_parameters": @<:@ @:>@ @@ -64,7 +64,7 @@ AT_CHECK([${COBJ} -info-json-dir=bbb callee.cbl prog.cbl]) AT_CHECK([cat bbb/info_callee.json], [0], [{ - "opensourcecobol4j_version": "1.0.21", + "opensourcecobol4j_version": "1.0.22", "program_id": "callee", "procedure_division_using_parameters": @<:@ { @@ -81,7 +81,7 @@ AT_CHECK([cat bbb/info_callee.json], [0], AT_CHECK([cat bbb/info_prog.json], [0], [{ - "opensourcecobol4j_version": "1.0.21", + "opensourcecobol4j_version": "1.0.22", "program_id": "prog", "procedure_division_using_parameters": @<:@ @:>@ diff --git a/tests/misc.at b/tests/misc.at index a58086dc..0772edc3 100644 --- a/tests/misc.at +++ b/tests/misc.at @@ -43,4 +43,5 @@ m4_include([fd-external.at]) m4_include([compile-multiple-files.at]) m4_include([compare-large-number.at]) m4_include([validate-indexed-file-keys.at]) +m4_include([record-key-duplicates-error.at]) #m4_include([copy-comments.at]) diff --git a/tests/misc.src/record-key-duplicates-error.at b/tests/misc.src/record-key-duplicates-error.at new file mode 100644 index 00000000..695e69f2 --- /dev/null +++ b/tests/misc.src/record-key-duplicates-error.at @@ -0,0 +1,28 @@ +AT_SETUP([Error on record keys with duplicates]) + +AT_DATA([prog.cbl], +[ IDENTIFICATION DIVISION. + PROGRAM-ID. prog. + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT TEST-FILE ASSIGN TO "./TEST-FILE" + ORGANIZATION IS INDEXED + RECORD KEY IS TEST-KEY1 WITH DUPLICATES + ALTERNATE RECORD KEY IS ALT-KEY1 + ALT-KEY2. + DATA DIVISION. + FILE SECTION. + FD TEST-FILE. + 01 TEST-REC. + 03 TEST-KEY1 PIC X(4). + 03 ALT-KEY1 PIC X(4). + 03 ALT-KEY2 PIC X(4). + PROCEDURE DIVISION. + STOP RUN. +]) + +AT_CHECK([${COBJ} prog.cbl], [1], [], +[prog.cbl:8: Error: Record keys with duplicates are not yet supported +]) +AT_CLEANUP diff --git a/tests/package.m4 b/tests/package.m4 index 7fb088fc..c7ae5fca 100644 --- a/tests/package.m4 +++ b/tests/package.m4 @@ -1,6 +1,6 @@ # Signature of the current package. m4_define([AT_PACKAGE_NAME], [opensource COBOL 4J]) -m4_define([AT_PACKAGE_TARNAME], [opensource-cobol-4j-1.0.20]) -m4_define([AT_PACKAGE_VERSION], [1.0.20]) -m4_define([AT_PACKAGE_STRING], [opensource COBOL 4J 1.0.20]) +m4_define([AT_PACKAGE_TARNAME], [opensource-cobol-4j-1.0.22]) +m4_define([AT_PACKAGE_VERSION], [1.0.22]) +m4_define([AT_PACKAGE_STRING], [opensource COBOL 4J 1.0.22]) m4_define([AT_PACKAGE_BUGREPORT], [ws-opensource-cobol-contact@osscons.jp]) diff --git a/update-version.sh b/update-version.sh new file mode 100755 index 00000000..d97ec0b8 --- /dev/null +++ b/update-version.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +tmpfile=$(mktemp) +old_version=$1 +new_version=$2 + +if [ "$old_version" = "" ] || [ "$new_version" = "" ]; then + echo "Error: Specify both the old version number and the new version number" > /dev/stderr + exit 1 +fi + +function update_versions_in_file() +{ + cat $1 | sed -e "s/$old_version/$new_version/g" > $tmpfile + cp $tmpfile $1 +} + +# replace version strings +update_versions_in_file configure.ac +update_versions_in_file README.md +update_versions_in_file README_JP.md +update_versions_in_file libcobj/app/build.gradle.kts +update_versions_in_file libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/Const.java +update_versions_in_file tests/command-line-options.src/info-java-dir.at +update_versions_in_file libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/user_util/cobj_api/ApiFilesOptions.java + +# Rebuild +autoreconf +./configure --prefix=/usr/ +make