From 789f507ae38af03ec3be48dfd3c4a5eb8868be2e Mon Sep 17 00:00:00 2001 From: Enrico Fucile Date: Thu, 4 Feb 2016 17:43:27 +0000 Subject: [PATCH 1/3] ECC-218 DAPP-260 --- definitions/bufr/section.1.3.def | 4 + definitions/bufr/section.1.4.def | 3 + definitions/bufr/section.3.def | 8 +- definitions/bufr/section.4.def | 2 +- src/grib_accessor_class_raw.c | 37 +- ...ib_accessor_class_unexpanded_descriptors.c | 55 +- src/grib_api_prototypes.h | 1 + src/grib_loader_from_handle.c | 7 +- src/grib_yacc.c | 1947 ++++++++--------- src/griby.y | 3 + tests/bufr_filter.sh | 10 +- 11 files changed, 1042 insertions(+), 1035 deletions(-) diff --git a/definitions/bufr/section.1.3.def b/definitions/bufr/section.1.3.def index d44b2522a..f842d1ce9 100644 --- a/definitions/bufr/section.1.3.def +++ b/definitions/bufr/section.1.3.def @@ -25,7 +25,11 @@ unsigned[1] dataSubCategory : dump; unsigned[1] masterTablesVersionNumber : dump; unsigned[1] localTablesVersionNumber : dump; +transient typicalCentury=21; + unsigned[1] typicalYearOfCentury : dump; +transient typicalYear = (typicalCentury - 1 ) *100 + typicalYearOfCentury : no_copy; + unsigned[1] typicalMonth : dump; unsigned[1] typicalDay : dump; unsigned[1] typicalHour : dump; diff --git a/definitions/bufr/section.1.4.def b/definitions/bufr/section.1.4.def index 6d4db260e..f1a62ca95 100644 --- a/definitions/bufr/section.1.4.def +++ b/definitions/bufr/section.1.4.def @@ -28,6 +28,9 @@ unsigned[1] masterTablesVersionNumber : dump; unsigned[1] localTablesVersionNumber : dump; unsigned[2] typicalYear : dump; +transient typicalYearOfCentury = typicalYear % 100; +transient typicalCentury = ( typicalYear - typicalYearOfCentury ) / 100 + 1 ; + unsigned[1] typicalMonth : dump; unsigned[1] typicalDay : dump; unsigned[1] typicalHour : dump; diff --git a/definitions/bufr/section.3.def b/definitions/bufr/section.3.def index e314d01e0..06996e5ee 100644 --- a/definitions/bufr/section.3.def +++ b/definitions/bufr/section.3.def @@ -27,7 +27,7 @@ hash_array sequences (defaultSequence,"sequence.def",tablesMasterDir,tablesLocal #smart_table codeFlags ("codeFlag.def",tablesMasterDir,tablesLocalDir,...); position offsetSection3; -section_length[3] section3Length ; +section_length[3] section3Length = 9 ; unsigned[1] reservedSection3 = 0; unsigned[2] numberOfSubsets : dump; alias ls.numberOfSubsets=numberOfSubsets; @@ -72,12 +72,12 @@ flagbit observedData(section3Flags,7) : dump,no_copy; flagbit compressedData(section3Flags,6) : dump,no_copy; position offsetDescriptors; -#meta unexpandedDescriptorsEncoded raw(section3Length - 7,totalLength,section3Length) : hidden; transient createNewData=1; meta numberOfUnexpandedDescriptors evaluate( (section3Length - 7) / 2 ) : no_copy; -#meta unexpandedDescriptors unexpanded_descriptors(unexpandedDescriptorsEncoded,createNewData) :dump,no_copy; -meta unexpandedDescriptors unexpanded_descriptors(numberOfUnexpandedDescriptors,createNewData) :dump,no_copy; + +meta unexpandedDescriptorsEncoded raw(totalLength,section3Length,7) : hidden; +meta unexpandedDescriptors unexpanded_descriptors(unexpandedDescriptorsEncoded,createNewData) :dump,no_copy; concept BufrTemplate (unknown,"BufrTemplate.def",templatesMasterDir,templatesLocalDir) : no_copy; diff --git a/definitions/bufr/section.4.def b/definitions/bufr/section.4.def index fda39e5c0..d15d68e0a 100644 --- a/definitions/bufr/section.4.def +++ b/definitions/bufr/section.4.def @@ -12,7 +12,7 @@ section_length[3] section4Length ; unsigned[1] reservedSection4 = 0; position offsetBeforeData; -meta bufrDataEncoded raw(section4Length - 4,totalLength,section4Length) : hidden; +meta bufrDataEncoded raw(totalLength,section4Length,4) : hidden; template dataKeys "bufr/dataKeys.def"; diff --git a/src/grib_accessor_class_raw.c b/src/grib_accessor_class_raw.c index 264d9d700..bd7e8c8f9 100644 --- a/src/grib_accessor_class_raw.c +++ b/src/grib_accessor_class_raw.c @@ -19,6 +19,7 @@ IMPLEMENTS = compare;unpack_bytes;byte_count;value_count MEMBERS = const char* totalLength MEMBERS = const char* sectionLength + MEMBERS = long relativeOffset END_CLASS_DEF */ @@ -49,6 +50,7 @@ typedef struct grib_accessor_raw { /* Members defined in raw */ const char* totalLength; const char* sectionLength; + long relativeOffset; } grib_accessor_raw; extern grib_accessor_class* grib_accessor_class_gen; @@ -134,15 +136,25 @@ static void init_class(grib_accessor_class* c) static void init(grib_accessor* a, const long len , grib_arguments* arg ) { int n=0; + int err=0; + long sectionLength; grib_accessor_raw *self =(grib_accessor_raw*)a; - grib_expression* e=grib_arguments_get_expression(grib_handle_of_accessor(a), arg,n++); + grib_expression* e; a->length=0; - grib_expression_evaluate_long(grib_handle_of_accessor(a),e,&(a->length)); self->totalLength = grib_arguments_get_name(grib_handle_of_accessor(a),arg,n++); self->sectionLength = grib_arguments_get_name(grib_handle_of_accessor(a),arg,n++); - Assert(a->length>=0); + e=grib_arguments_get_expression(grib_handle_of_accessor(a), arg,n++); + grib_expression_evaluate_long(grib_handle_of_accessor(a),e,&(self->relativeOffset)); + if (err) grib_context_log(grib_handle_of_accessor(a)->context,GRIB_LOG_FATAL,"unable to evaluate relativeOffset"); + + grib_get_long(grib_handle_of_accessor(a),self->sectionLength,§ionLength); + + a->length=sectionLength-self->relativeOffset; + if (a->length<0) a->length=0; + + /* Assert(a->length>=0); */ } static int get_native_type(grib_accessor* a){ @@ -201,20 +213,21 @@ static int pack_bytes(grib_accessor* a, const unsigned char* val, size_t *len) { size_t length = *len; long totalLength; - long section4Length; - /* grib_handle* h=grib_handle_of_accessor(a); */ + long sectionLength; + grib_handle* h=grib_handle_of_accessor(a); grib_accessor_raw *self =(grib_accessor_raw*)a; + long dlen=length-a->length; - grib_get_long(grib_handle_of_accessor(a),self->totalLength,&totalLength); - totalLength+=length-a->length; - grib_get_long(grib_handle_of_accessor(a),self->sectionLength,§ion4Length); - section4Length+=length-a->length; + grib_get_long(h,self->totalLength,&totalLength); + totalLength+=dlen; + grib_get_long(h,self->sectionLength,§ionLength); + sectionLength+=dlen; grib_buffer_replace(a, val, length,1,1); - grib_set_long(grib_handle_of_accessor(a),self->totalLength,totalLength); - grib_set_long(grib_handle_of_accessor(a),self->sectionLength,section4Length); - a->length = section4Length-4; + grib_set_long(h,self->totalLength,totalLength); + grib_set_long(h,self->sectionLength,sectionLength); + a->length = length; return GRIB_SUCCESS; } diff --git a/src/grib_accessor_class_unexpanded_descriptors.c b/src/grib_accessor_class_unexpanded_descriptors.c index 115b113ee..bd4259f9b 100644 --- a/src/grib_accessor_class_unexpanded_descriptors.c +++ b/src/grib_accessor_class_unexpanded_descriptors.c @@ -18,11 +18,10 @@ IMPLEMENTS = unpack_long;pack_long IMPLEMENTS = init;dump IMPLEMENTS = next_offset - IMPLEMENTS = byte_count IMPLEMENTS = value_count IMPLEMENTS = byte_offset IMPLEMENTS = update_size - MEMBERS = const char* numberOfUnexpandedDescriptors + MEMBERS = grib_accessor* unexpandedDescriptorsEncoded MEMBERS = const char* createNewData END_CLASS_DEF @@ -41,7 +40,6 @@ or edit "accessor.class" and rerun ./make_class.pl static int pack_long(grib_accessor*, const long* val,size_t *len); static int unpack_long(grib_accessor*, long* val,size_t *len); -static long byte_count(grib_accessor*); static long byte_offset(grib_accessor*); static long next_offset(grib_accessor*); static int value_count(grib_accessor*,long*); @@ -55,7 +53,7 @@ typedef struct grib_accessor_unexpanded_descriptors { /* Members defined in gen */ /* Members defined in long */ /* Members defined in unexpanded_descriptors */ - const char* numberOfUnexpandedDescriptors; + grib_accessor* unexpandedDescriptorsEncoded; const char* createNewData; } grib_accessor_unexpanded_descriptors; @@ -74,7 +72,7 @@ static grib_accessor_class _grib_accessor_class_unexpanded_descriptors = { &next_offset, /* get length of section */ 0, /* get length of string */ &value_count, /* get number of values */ - &byte_count, /* get number of bytes */ + 0, /* get number of bytes */ &byte_offset, /* get offset to bytes */ 0, /* get native type */ 0, /* get sub_section */ @@ -111,6 +109,7 @@ grib_accessor_class* grib_accessor_class_unexpanded_descriptors = &_grib_accesso static void init_class(grib_accessor_class* c) { c->string_length = (*(c->super))->string_length; + c->byte_count = (*(c->super))->byte_count; c->get_native_type = (*(c->super))->get_native_type; c->sub_section = (*(c->super))->sub_section; c->pack_missing = (*(c->super))->pack_missing; @@ -138,28 +137,13 @@ static void init_class(grib_accessor_class* c) /* END_CLASS_IMP */ -static long compute_byte_count(grib_accessor* a){ - grib_accessor_unexpanded_descriptors* self = (grib_accessor_unexpanded_descriptors*)a; - long numberOfUnexpandedDescriptors; - int ret=0; - - ret=grib_get_long(grib_handle_of_accessor(a),self->numberOfUnexpandedDescriptors,&numberOfUnexpandedDescriptors); - if (ret) { - grib_context_log(a->context,GRIB_LOG_ERROR, - "%s unable to get %s to compute size",a->name,self->numberOfUnexpandedDescriptors); - return 0; - } - - return 2*numberOfUnexpandedDescriptors; -} - static void init(grib_accessor* a, const long len , grib_arguments* args ) { grib_accessor_unexpanded_descriptors* self = (grib_accessor_unexpanded_descriptors*)a; int n=0; - self->numberOfUnexpandedDescriptors=grib_arguments_get_name(grib_handle_of_accessor(a),args,n++); + self->unexpandedDescriptorsEncoded=grib_find_accessor(grib_handle_of_accessor(a),grib_arguments_get_name(grib_handle_of_accessor(a),args,n++)); self->createNewData=grib_arguments_get_name(grib_handle_of_accessor(a),args,n++); - a->length = compute_byte_count(a); + a->length = 0; } static void dump(grib_accessor* a, grib_dumper* dumper) @@ -171,13 +155,15 @@ static int unpack_long (grib_accessor* a, long* val, size_t *len) { grib_accessor_unexpanded_descriptors* self = (grib_accessor_unexpanded_descriptors*)a; int ret=0; - long pos = a->offset*8; + long pos = 0; long rlen =0; long numberOfUnexpandedDescriptors = 0; long f,x,y; long *v=val; int i; + pos=accessor_raw_get_offset(self->unexpandedDescriptorsEncoded)*8; + ret=value_count(a,&rlen); if (ret) return ret; @@ -195,9 +181,6 @@ static int unpack_long (grib_accessor* a, long* val, size_t *len) return GRIB_ARRAY_TOO_SMALL; } - ret=grib_get_long(grib_handle_of_accessor(a),self->numberOfUnexpandedDescriptors,&numberOfUnexpandedDescriptors); - if (ret) return ret; - for (i=0;ibuffer->data,&pos,2); x=grib_decode_unsigned_long(grib_handle_of_accessor(a)->buffer->data,&pos,6); @@ -233,15 +216,9 @@ static int pack_long (grib_accessor* a, const long* val, size_t *len) grib_encode_unsigned_longb(buf,y,&pos,8); } - grib_get_long(grib_handle_of_accessor(a),"section3Length",§ion3Length); - section3Length+=buflen-a->length; - grib_get_long(grib_handle_of_accessor(a),"totalLength",&totalLength); - totalLength+=buflen-a->length; + grib_pack_bytes(self->unexpandedDescriptorsEncoded,buf,&buflen); + grib_context_free(grib_handle_of_accessor(a)->context,buf); - grib_buffer_replace(a,buf,buflen,1,1); - - grib_set_long(grib_handle_of_accessor(a),"totalLength",totalLength); - grib_set_long(grib_handle_of_accessor(a),"section3Length",section3Length); if (createNewData==0) return ret; expanded=grib_find_accessor(grib_handle_of_accessor(a),"expandedCodes"); @@ -253,16 +230,16 @@ static int pack_long (grib_accessor* a, const long* val, size_t *len) return ret; } -static long byte_count(grib_accessor* a){ - return a->length; -} static int value_count(grib_accessor* a,long* numberOfUnexpandedDescriptors) { grib_accessor_unexpanded_descriptors* self = (grib_accessor_unexpanded_descriptors*)a; - *numberOfUnexpandedDescriptors=0; + long n=0; - return grib_get_long(grib_handle_of_accessor(a),self->numberOfUnexpandedDescriptors,numberOfUnexpandedDescriptors); + grib_value_count(self->unexpandedDescriptorsEncoded,&n); + *numberOfUnexpandedDescriptors=n/2; + + return 0; } static long byte_offset(grib_accessor* a){ diff --git a/src/grib_api_prototypes.h b/src/grib_api_prototypes.h index 061266735..d31108794 100644 --- a/src/grib_api_prototypes.h +++ b/src/grib_api_prototypes.h @@ -1437,3 +1437,4 @@ int grib_encode_double_array_complex(size_t n_vals, double *val, long nbits, dou long accessor_raw_get_offset(grib_accessor* a); +void accessor_raw_set_length(grib_accessor* a,size_t len); diff --git a/src/grib_loader_from_handle.c b/src/grib_loader_from_handle.c index 37d8142d7..811e250d4 100644 --- a/src/grib_loader_from_handle.c +++ b/src/grib_loader_from_handle.c @@ -78,6 +78,7 @@ int grib_init_accessor_from_handle(grib_loader* loader,grib_accessor* ga,grib_ar const char* name = NULL; int k = 0; grib_handle *g; + grib_accessor* ao=NULL; int e, pack_missing = 0; grib_context_log(h->context,GRIB_LOG_DEBUG, "XXXXX Copying %s", ga->name); @@ -246,9 +247,11 @@ int grib_init_accessor_from_handle(grib_loader* loader,grib_accessor* ga,grib_ar case GRIB_TYPE_BYTES: - len=grib_byte_count(ga); + ao=grib_find_accessor(h,name); + len=grib_byte_count(ao); uval = (unsigned char*)grib_context_malloc(h->context,len*sizeof(char)); - ret = grib_get_bytes_internal(h,name,uval,&len); + ret=grib_unpack_bytes(ao,uval,&len); + /* ret = grib_get_bytes_internal(h,name,uval,&len); */ if(ret == GRIB_SUCCESS) { grib_context_log(h->context,GRIB_LOG_DEBUG, "Copying %d byte(s) to %s", len, name); diff --git a/src/grib_yacc.c b/src/grib_yacc.c index 7874dad08..da508aeaf 100644 --- a/src/grib_yacc.c +++ b/src/grib_yacc.c @@ -651,16 +651,16 @@ union grib_yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 214 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1847 +#define YYLAST 1789 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 144 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 50 /* YYNRULES -- Number of rules. */ -#define YYNRULES 269 +#define YYNRULES 270 /* YYNRULES -- Number of states. */ -#define YYNSTATES 898 +#define YYNSTATES 899 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -727,24 +727,25 @@ static const grib_yytype_uint16 grib_yyprhs[] = 290, 299, 308, 317, 328, 337, 347, 355, 358, 361, 366, 371, 376, 381, 386, 391, 396, 401, 406, 411, 416, 421, 426, 431, 436, 444, 451, 459, 462, 468, - 474, 481, 486, 493, 501, 504, 510, 519, 528, 532, - 538, 544, 550, 556, 563, 567, 571, 575, 579, 585, - 588, 596, 601, 610, 621, 627, 633, 639, 645, 648, - 655, 660, 664, 669, 674, 681, 688, 693, 696, 698, - 704, 709, 712, 714, 720, 725, 730, 733, 739, 745, - 747, 755, 767, 775, 787, 794, 802, 814, 819, 824, - 827, 831, 833, 836, 838, 841, 843, 847, 849, 851, - 853, 855, 857, 859, 861, 863, 865, 867, 869, 871, - 873, 875, 877, 879, 881, 890, 898, 906, 913, 923, - 936, 951, 962, 977, 990, 999, 1011, 1018, 1028, 1041, - 1052, 1067, 1080, 1089, 1101, 1103, 1106, 1108, 1111, 1118, - 1131, 1133, 1136, 1141, 1152, 1162, 1170, 1176, 1182, 1188, - 1194, 1196, 1199, 1204, 1211, 1217, 1223, 1232, 1234, 1243, - 1245, 1247, 1249, 1251, 1253, 1255, 1259, 1262, 1266, 1271, - 1275, 1277, 1281, 1285, 1289, 1293, 1297, 1299, 1304, 1311, - 1318, 1325, 1334, 1339, 1343, 1347, 1349, 1353, 1357, 1361, - 1365, 1369, 1373, 1377, 1380, 1382, 1386, 1388, 1392, 1394, - 1396, 1398, 1400, 1405, 1408, 1410, 1413, 1415, 1423, 1425 + 474, 481, 486, 493, 501, 504, 510, 517, 526, 535, + 539, 545, 551, 557, 563, 570, 574, 578, 582, 586, + 592, 595, 603, 608, 617, 628, 634, 640, 646, 652, + 655, 662, 667, 671, 676, 681, 688, 695, 700, 703, + 705, 711, 716, 719, 721, 727, 732, 737, 740, 746, + 752, 754, 762, 774, 782, 794, 801, 809, 821, 826, + 831, 834, 838, 840, 843, 845, 848, 850, 854, 856, + 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, + 878, 880, 882, 884, 886, 888, 897, 905, 913, 920, + 930, 943, 958, 969, 984, 997, 1006, 1018, 1025, 1035, + 1048, 1059, 1074, 1087, 1096, 1108, 1110, 1113, 1115, 1118, + 1125, 1138, 1140, 1143, 1148, 1159, 1169, 1177, 1183, 1189, + 1195, 1201, 1203, 1206, 1211, 1218, 1224, 1230, 1239, 1241, + 1250, 1252, 1254, 1256, 1258, 1260, 1262, 1266, 1269, 1273, + 1278, 1282, 1284, 1288, 1292, 1296, 1300, 1304, 1306, 1311, + 1318, 1325, 1332, 1341, 1346, 1350, 1354, 1356, 1360, 1364, + 1368, 1372, 1376, 1380, 1384, 1387, 1389, 1393, 1395, 1399, + 1401, 1403, 1405, 1407, 1412, 1415, 1417, 1420, 1422, 1430, + 1432 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -801,98 +802,99 @@ static const grib_yytype_int16 grib_yyrhs[] = -1, 126, 123, 161, 162, -1, 126, 123, 134, 123, 161, 162, -1, 126, 123, 129, 155, 130, 161, 162, -1, 96, 123, -1, 99, 129, 125, 130, 123, -1, - 97, 129, 125, 130, 123, 131, 153, 132, -1, 98, - 129, 125, 130, 123, 131, 153, 132, -1, 105, 123, - 155, -1, 89, 123, 131, 153, 132, -1, 93, 123, - 131, 153, 132, -1, 94, 123, 131, 153, 132, -1, - 95, 123, 131, 153, 132, -1, 91, 129, 125, 130, - 123, 162, -1, 92, 123, 162, -1, 90, 123, 162, - -1, 10, 123, 124, -1, 11, 123, 124, -1, 49, - 123, 133, 123, 162, -1, 50, 123, -1, 49, 123, - 134, 123, 133, 123, 162, -1, 50, 123, 134, 123, - -1, 51, 123, 123, 131, 153, 132, 161, 162, -1, - 51, 123, 134, 123, 123, 131, 153, 132, 161, 162, - -1, 102, 123, 131, 153, 132, -1, 103, 123, 131, - 153, 132, -1, 104, 123, 131, 153, 132, -1, 85, - 123, 131, 153, 132, -1, 86, 153, -1, 87, 131, - 123, 127, 123, 132, -1, 106, 131, 187, 132, -1, - 62, 123, 162, -1, 80, 123, 133, 76, -1, 80, - 123, 133, 187, -1, 80, 123, 133, 135, 147, 136, - -1, 80, 123, 133, 135, 148, 136, -1, 81, 123, - 133, 187, -1, 82, 124, -1, 82, -1, 82, 131, - 125, 132, 124, -1, 82, 131, 125, 132, -1, 83, - 124, -1, 83, -1, 83, 131, 125, 132, 124, -1, - 83, 131, 125, 132, -1, 8, 131, 123, 132, -1, - 84, 124, -1, 84, 131, 124, 132, 124, -1, 84, - 131, 123, 132, 124, -1, 84, -1, 4, 131, 187, - 132, 135, 150, 136, -1, 4, 131, 187, 132, 135, - 150, 136, 6, 135, 150, 136, -1, 5, 131, 187, - 132, 135, 150, 136, -1, 5, 131, 187, 132, 135, - 150, 136, 6, 135, 150, 136, -1, 79, 131, 187, - 132, 159, 152, -1, 79, 131, 187, 132, 135, 160, - 136, -1, 79, 131, 187, 132, 135, 160, 136, 6, - 135, 160, 136, -1, 80, 123, 133, 187, -1, 81, - 123, 133, 187, -1, 159, 152, -1, 160, 159, 152, - -1, 146, -1, 133, 153, -1, 146, -1, 137, 163, - -1, 164, -1, 163, 127, 164, -1, 63, -1, 3, - -1, 68, -1, 69, -1, 70, -1, 67, -1, 71, - -1, 74, -1, 72, -1, 75, -1, 77, -1, 73, - -1, 78, -1, 54, -1, 64, -1, 65, -1, 66, - -1, 123, 18, 131, 187, 132, 135, 150, 136, -1, - 25, 131, 187, 132, 135, 150, 136, -1, 12, 131, - 153, 132, 135, 150, 136, -1, 56, 123, 135, 169, - 136, 162, -1, 56, 123, 131, 123, 132, 135, 169, - 136, 162, -1, 56, 123, 131, 123, 127, 124, 127, - 123, 127, 123, 132, 162, -1, 56, 123, 131, 123, - 127, 124, 127, 123, 127, 123, 127, 123, 132, 162, - -1, 56, 123, 131, 123, 127, 124, 127, 123, 132, - 162, -1, 56, 123, 134, 123, 131, 123, 127, 124, - 127, 123, 127, 123, 132, 162, -1, 56, 123, 134, - 123, 131, 123, 127, 124, 127, 123, 132, 162, -1, - 56, 123, 134, 123, 135, 169, 136, 162, -1, 56, - 123, 134, 123, 131, 123, 132, 135, 169, 136, 162, - -1, 59, 123, 135, 169, 136, 162, -1, 59, 123, + 99, 129, 125, 130, 123, 161, -1, 97, 129, 125, + 130, 123, 131, 153, 132, -1, 98, 129, 125, 130, + 123, 131, 153, 132, -1, 105, 123, 155, -1, 89, + 123, 131, 153, 132, -1, 93, 123, 131, 153, 132, + -1, 94, 123, 131, 153, 132, -1, 95, 123, 131, + 153, 132, -1, 91, 129, 125, 130, 123, 162, -1, + 92, 123, 162, -1, 90, 123, 162, -1, 10, 123, + 124, -1, 11, 123, 124, -1, 49, 123, 133, 123, + 162, -1, 50, 123, -1, 49, 123, 134, 123, 133, + 123, 162, -1, 50, 123, 134, 123, -1, 51, 123, + 123, 131, 153, 132, 161, 162, -1, 51, 123, 134, + 123, 123, 131, 153, 132, 161, 162, -1, 102, 123, + 131, 153, 132, -1, 103, 123, 131, 153, 132, -1, + 104, 123, 131, 153, 132, -1, 85, 123, 131, 153, + 132, -1, 86, 153, -1, 87, 131, 123, 127, 123, + 132, -1, 106, 131, 187, 132, -1, 62, 123, 162, + -1, 80, 123, 133, 76, -1, 80, 123, 133, 187, + -1, 80, 123, 133, 135, 147, 136, -1, 80, 123, + 133, 135, 148, 136, -1, 81, 123, 133, 187, -1, + 82, 124, -1, 82, -1, 82, 131, 125, 132, 124, + -1, 82, 131, 125, 132, -1, 83, 124, -1, 83, + -1, 83, 131, 125, 132, 124, -1, 83, 131, 125, + 132, -1, 8, 131, 123, 132, -1, 84, 124, -1, + 84, 131, 124, 132, 124, -1, 84, 131, 123, 132, + 124, -1, 84, -1, 4, 131, 187, 132, 135, 150, + 136, -1, 4, 131, 187, 132, 135, 150, 136, 6, + 135, 150, 136, -1, 5, 131, 187, 132, 135, 150, + 136, -1, 5, 131, 187, 132, 135, 150, 136, 6, + 135, 150, 136, -1, 79, 131, 187, 132, 159, 152, + -1, 79, 131, 187, 132, 135, 160, 136, -1, 79, + 131, 187, 132, 135, 160, 136, 6, 135, 160, 136, + -1, 80, 123, 133, 187, -1, 81, 123, 133, 187, + -1, 159, 152, -1, 160, 159, 152, -1, 146, -1, + 133, 153, -1, 146, -1, 137, 163, -1, 164, -1, + 163, 127, 164, -1, 63, -1, 3, -1, 68, -1, + 69, -1, 70, -1, 67, -1, 71, -1, 74, -1, + 72, -1, 75, -1, 77, -1, 73, -1, 78, -1, + 54, -1, 64, -1, 65, -1, 66, -1, 123, 18, + 131, 187, 132, 135, 150, 136, -1, 25, 131, 187, + 132, 135, 150, 136, -1, 12, 131, 153, 132, 135, + 150, 136, -1, 56, 123, 135, 169, 136, 162, -1, + 56, 123, 131, 123, 132, 135, 169, 136, 162, -1, + 56, 123, 131, 123, 127, 124, 127, 123, 127, 123, + 132, 162, -1, 56, 123, 131, 123, 127, 124, 127, + 123, 127, 123, 127, 123, 132, 162, -1, 56, 123, + 131, 123, 127, 124, 127, 123, 132, 162, -1, 56, + 123, 134, 123, 131, 123, 127, 124, 127, 123, 127, + 123, 132, 162, -1, 56, 123, 134, 123, 131, 123, + 127, 124, 127, 123, 132, 162, -1, 56, 123, 134, + 123, 135, 169, 136, 162, -1, 56, 123, 134, 123, 131, 123, 132, 135, 169, 136, 162, -1, 59, 123, - 131, 123, 127, 124, 127, 123, 127, 123, 132, 162, - -1, 59, 123, 131, 123, 127, 124, 127, 123, 132, - 162, -1, 59, 123, 134, 123, 131, 123, 127, 124, - 127, 123, 127, 123, 132, 162, -1, 59, 123, 134, - 123, 131, 123, 127, 124, 127, 123, 132, 162, -1, - 59, 123, 134, 123, 135, 169, 136, 162, -1, 59, - 123, 134, 123, 131, 123, 132, 135, 169, 136, 162, - -1, 175, -1, 169, 175, -1, 178, -1, 170, 178, - -1, 58, 123, 135, 170, 136, 162, -1, 58, 123, - 131, 123, 127, 124, 127, 123, 127, 123, 132, 162, - -1, 173, -1, 172, 173, -1, 108, 154, 137, 150, - -1, 109, 131, 153, 132, 135, 172, 110, 137, 150, - 136, -1, 109, 131, 153, 132, 135, 172, 110, 137, - 136, -1, 109, 131, 153, 132, 135, 172, 136, -1, - 124, 133, 135, 176, 136, -1, 123, 133, 135, 176, - 136, -1, 125, 133, 135, 176, 136, -1, 126, 133, - 135, 176, 136, -1, 177, -1, 177, 176, -1, 123, - 133, 187, 128, -1, 123, 133, 129, 149, 130, 128, - -1, 124, 133, 129, 149, 130, -1, 123, 133, 129, - 149, 130, -1, 107, 131, 123, 127, 125, 127, 125, - 132, -1, 123, -1, 107, 131, 124, 127, 125, 127, - 125, 132, -1, 124, -1, 179, -1, 125, -1, 126, - -1, 60, -1, 61, -1, 131, 187, 132, -1, 138, - 180, -1, 123, 131, 132, -1, 123, 131, 153, 132, - -1, 180, 139, 181, -1, 180, -1, 182, 140, 181, - -1, 182, 141, 181, -1, 182, 142, 181, -1, 182, - 117, 181, -1, 182, 118, 181, -1, 181, -1, 100, - 131, 123, 132, -1, 19, 131, 123, 127, 124, 132, - -1, 20, 131, 123, 127, 124, 132, -1, 21, 131, - 123, 127, 125, 132, -1, 21, 131, 123, 127, 125, - 127, 125, 132, -1, 21, 131, 123, 132, -1, 183, - 143, 182, -1, 183, 138, 182, -1, 182, -1, 184, - 116, 183, -1, 184, 111, 183, -1, 184, 115, 183, - -1, 184, 113, 183, -1, 184, 114, 183, -1, 184, - 112, 183, -1, 179, 122, 179, -1, 121, 184, -1, - 183, -1, 185, 119, 184, -1, 184, -1, 186, 120, - 185, -1, 185, -1, 186, -1, 191, -1, 192, -1, - 123, 133, 187, 128, -1, 88, 128, -1, 189, -1, - 189, 190, -1, 189, -1, 4, 131, 187, 132, 135, - 190, 136, -1, 188, -1, 188, 193, -1 + 135, 169, 136, 162, -1, 59, 123, 131, 123, 132, + 135, 169, 136, 162, -1, 59, 123, 131, 123, 127, + 124, 127, 123, 127, 123, 132, 162, -1, 59, 123, + 131, 123, 127, 124, 127, 123, 132, 162, -1, 59, + 123, 134, 123, 131, 123, 127, 124, 127, 123, 127, + 123, 132, 162, -1, 59, 123, 134, 123, 131, 123, + 127, 124, 127, 123, 132, 162, -1, 59, 123, 134, + 123, 135, 169, 136, 162, -1, 59, 123, 134, 123, + 131, 123, 132, 135, 169, 136, 162, -1, 175, -1, + 169, 175, -1, 178, -1, 170, 178, -1, 58, 123, + 135, 170, 136, 162, -1, 58, 123, 131, 123, 127, + 124, 127, 123, 127, 123, 132, 162, -1, 173, -1, + 172, 173, -1, 108, 154, 137, 150, -1, 109, 131, + 153, 132, 135, 172, 110, 137, 150, 136, -1, 109, + 131, 153, 132, 135, 172, 110, 137, 136, -1, 109, + 131, 153, 132, 135, 172, 136, -1, 124, 133, 135, + 176, 136, -1, 123, 133, 135, 176, 136, -1, 125, + 133, 135, 176, 136, -1, 126, 133, 135, 176, 136, + -1, 177, -1, 177, 176, -1, 123, 133, 187, 128, + -1, 123, 133, 129, 149, 130, 128, -1, 124, 133, + 129, 149, 130, -1, 123, 133, 129, 149, 130, -1, + 107, 131, 123, 127, 125, 127, 125, 132, -1, 123, + -1, 107, 131, 124, 127, 125, 127, 125, 132, -1, + 124, -1, 179, -1, 125, -1, 126, -1, 60, -1, + 61, -1, 131, 187, 132, -1, 138, 180, -1, 123, + 131, 132, -1, 123, 131, 153, 132, -1, 180, 139, + 181, -1, 180, -1, 182, 140, 181, -1, 182, 141, + 181, -1, 182, 142, 181, -1, 182, 117, 181, -1, + 182, 118, 181, -1, 181, -1, 100, 131, 123, 132, + -1, 19, 131, 123, 127, 124, 132, -1, 20, 131, + 123, 127, 124, 132, -1, 21, 131, 123, 127, 125, + 132, -1, 21, 131, 123, 127, 125, 127, 125, 132, + -1, 21, 131, 123, 132, -1, 183, 143, 182, -1, + 183, 138, 182, -1, 182, -1, 184, 116, 183, -1, + 184, 111, 183, -1, 184, 115, 183, -1, 184, 113, + 183, -1, 184, 114, 183, -1, 184, 112, 183, -1, + 179, 122, 179, -1, 121, 184, -1, 183, -1, 185, + 119, 184, -1, 184, -1, 186, 120, 185, -1, 185, + -1, 186, -1, 191, -1, 192, -1, 123, 133, 187, + 128, -1, 88, 128, -1, 189, -1, 189, 190, -1, + 189, -1, 4, 131, 187, 132, 135, 190, 136, -1, + 188, -1, 188, 193, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -908,23 +910,24 @@ static const grib_yytype_uint16 grib_yyrline[] = 425, 428, 431, 434, 437, 440, 443, 446, 449, 452, 455, 458, 461, 464, 467, 471, 474, 477, 480, 483, 485, 488, 491, 494, 497, 500, 503, 506, 509, 512, - 515, 518, 521, 524, 527, 530, 532, 534, 537, 540, - 543, 547, 551, 554, 557, 569, 581, 593, 596, 599, - 601, 604, 607, 608, 609, 610, 612, 615, 616, 617, - 618, 619, 620, 621, 622, 624, 625, 626, 627, 628, - 632, 633, 634, 635, 639, 640, 641, 644, 645, 648, - 649, 653, 654, 657, 658, 661, 662, 665, 666, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 684, 687, 690, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 713, 714, 717, 718, 721, 722, - 725, 726, 729, 733, 734, 735, 738, 740, 742, 744, - 748, 749, 752, 753, 757, 759, 763, 764, 765, 766, - 769, 770, 771, 773, 774, 775, 776, 777, 778, 782, - 783, 786, 787, 788, 789, 790, 791, 792, 793, 794, - 795, 796, 797, 800, 801, 802, 805, 807, 808, 809, - 810, 811, 812, 817, 818, 821, 822, 825, 826, 829, - 835, 836, 839, 840, 843, 844, 847, 851, 854, 855 + 515, 518, 521, 524, 527, 530, 533, 535, 537, 540, + 543, 546, 550, 554, 557, 560, 572, 584, 596, 599, + 602, 604, 607, 610, 611, 612, 613, 615, 618, 619, + 620, 621, 622, 623, 624, 625, 627, 628, 629, 630, + 631, 635, 636, 637, 638, 642, 643, 644, 647, 648, + 651, 652, 656, 657, 660, 661, 664, 665, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 687, 690, 693, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 716, 717, 720, 721, 724, + 725, 728, 729, 732, 736, 737, 738, 741, 743, 745, + 747, 751, 752, 755, 756, 760, 762, 766, 767, 768, + 769, 772, 773, 774, 776, 777, 778, 779, 780, 781, + 785, 786, 789, 790, 791, 792, 793, 794, 795, 796, + 797, 798, 799, 800, 803, 804, 805, 808, 810, 811, + 812, 813, 814, 815, 820, 821, 824, 825, 828, 829, + 832, 838, 839, 842, 843, 846, 847, 850, 854, 857, + 858 }; #endif @@ -1009,19 +1012,20 @@ static const grib_yytype_uint8 grib_yyr1[] = 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 157, 157, 157, 157, 158, 158, 158, 159, 159, 160, - 160, 161, 161, 162, 162, 163, 163, 164, 164, 164, + 156, 157, 157, 157, 157, 158, 158, 158, 159, 159, + 160, 160, 161, 161, 162, 162, 163, 163, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 165, 166, 167, 168, 168, 168, + 164, 164, 164, 164, 164, 165, 166, 167, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 169, 169, 170, 170, 171, 171, - 172, 172, 173, 174, 174, 174, 175, 175, 175, 175, - 176, 176, 177, 177, 178, 178, 179, 179, 179, 179, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 181, - 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 183, 183, 183, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 185, 185, 186, 186, 187, - 188, 188, 189, 189, 190, 190, 191, 192, 193, 193 + 168, 168, 168, 168, 168, 169, 169, 170, 170, 171, + 171, 172, 172, 173, 174, 174, 174, 175, 175, 175, + 175, 176, 176, 177, 177, 178, 178, 179, 179, 179, + 179, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 183, 183, 183, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 185, 185, 186, 186, + 187, 188, 188, 189, 189, 190, 190, 191, 192, 193, + 193 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1036,24 +1040,25 @@ static const grib_yytype_uint8 grib_yyr2[] = 8, 8, 8, 10, 8, 9, 7, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 6, 7, 2, 5, 5, - 6, 4, 6, 7, 2, 5, 8, 8, 3, 5, - 5, 5, 5, 6, 3, 3, 3, 3, 5, 2, - 7, 4, 8, 10, 5, 5, 5, 5, 2, 6, - 4, 3, 4, 4, 6, 6, 4, 2, 1, 5, - 4, 2, 1, 5, 4, 4, 2, 5, 5, 1, - 7, 11, 7, 11, 6, 7, 11, 4, 4, 2, - 3, 1, 2, 1, 2, 1, 3, 1, 1, 1, + 6, 4, 6, 7, 2, 5, 6, 8, 8, 3, + 5, 5, 5, 5, 6, 3, 3, 3, 3, 5, + 2, 7, 4, 8, 10, 5, 5, 5, 5, 2, + 6, 4, 3, 4, 4, 6, 6, 4, 2, 1, + 5, 4, 2, 1, 5, 4, 4, 2, 5, 5, + 1, 7, 11, 7, 11, 6, 7, 11, 4, 4, + 2, 3, 1, 2, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 8, 7, 7, 6, 9, 12, - 14, 10, 14, 12, 8, 11, 6, 9, 12, 10, - 14, 12, 8, 11, 1, 2, 1, 2, 6, 12, - 1, 2, 4, 10, 9, 7, 5, 5, 5, 5, - 1, 2, 4, 6, 5, 5, 8, 1, 8, 1, - 1, 1, 1, 1, 1, 3, 2, 3, 4, 3, - 1, 3, 3, 3, 3, 3, 1, 4, 6, 6, - 6, 8, 4, 3, 3, 1, 3, 3, 3, 3, - 3, 3, 3, 2, 1, 3, 1, 3, 1, 1, - 1, 1, 4, 2, 1, 2, 1, 7, 1, 2 + 1, 1, 1, 1, 1, 8, 7, 7, 6, 9, + 12, 14, 10, 14, 12, 8, 11, 6, 9, 12, + 10, 14, 12, 8, 11, 1, 2, 1, 2, 6, + 12, 1, 2, 4, 10, 9, 7, 5, 5, 5, + 5, 1, 2, 4, 6, 5, 5, 8, 1, 8, + 1, 1, 1, 1, 1, 1, 3, 2, 3, 4, + 3, 1, 3, 3, 3, 3, 3, 1, 4, 6, + 6, 6, 8, 4, 3, 3, 1, 3, 3, 3, + 3, 3, 3, 3, 2, 1, 3, 1, 3, 1, + 1, 1, 1, 4, 2, 1, 2, 1, 7, 1, + 2 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. @@ -1066,91 +1071,91 @@ static const grib_yytype_uint16 grib_yydefact[] = 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, 0, - 0, 128, 132, 139, 0, 8, 0, 0, 0, 0, + 0, 129, 133, 140, 0, 8, 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, 2, 5, 17, 0, 22, 28, 23, 24, 25, - 26, 3, 4, 27, 29, 194, 196, 268, 266, 260, - 261, 6, 0, 0, 0, 0, 0, 0, 0, 8, + 26, 3, 4, 27, 29, 195, 197, 269, 267, 261, + 262, 6, 0, 0, 0, 0, 0, 0, 0, 8, 0, 8, 8, 0, 67, 68, 0, 8, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, - 0, 109, 0, 87, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 127, 0, 131, 0, 136, 0, - 0, 0, 0, 0, 223, 224, 0, 0, 0, 217, - 219, 221, 222, 0, 0, 32, 118, 33, 34, 220, - 230, 236, 245, 254, 256, 258, 259, 36, 0, 263, + 0, 110, 0, 87, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 128, 0, 132, 0, 137, 0, + 0, 0, 0, 0, 224, 225, 0, 0, 0, 218, + 220, 222, 223, 0, 0, 32, 119, 33, 34, 221, + 231, 237, 246, 255, 257, 259, 260, 36, 0, 264, 0, 8, 0, 8, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 8, 0, 1, 0, 0, 0, 20, 18, - 21, 0, 0, 0, 195, 0, 0, 197, 0, 0, - 269, 0, 0, 0, 0, 0, 106, 107, 0, 0, - 8, 8, 151, 8, 8, 0, 0, 0, 0, 8, + 21, 0, 0, 0, 196, 0, 0, 198, 0, 0, + 270, 0, 0, 0, 0, 0, 107, 108, 0, 0, + 8, 8, 152, 8, 8, 0, 0, 0, 0, 8, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, - 121, 0, 0, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 253, 0, 0, 220, 226, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, + 122, 0, 0, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 254, 0, 0, 221, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 105, - 0, 104, 8, 8, 8, 0, 0, 0, 0, 8, - 8, 8, 98, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 106, + 0, 105, 8, 8, 8, 0, 0, 0, 0, 8, + 8, 8, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, - 0, 0, 135, 0, 0, 0, 0, 0, 152, 42, + 0, 0, 136, 0, 0, 0, 0, 0, 153, 42, 47, 0, 0, 0, 8, 69, 0, 0, 71, 70, 73, 72, 75, 74, 77, 76, 79, 78, 81, 80, 83, 82, 0, 0, 0, 0, 0, 0, 8, 0, - 111, 8, 0, 8, 0, 8, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 170, 157, 171, 172, - 173, 162, 159, 160, 161, 163, 165, 168, 164, 166, - 167, 169, 154, 155, 0, 122, 0, 123, 126, 130, - 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 227, 0, 225, 35, 217, 252, 229, 234, 235, 231, - 232, 233, 244, 243, 247, 251, 249, 250, 248, 246, - 255, 257, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 120, 0, 0, 8, 8, - 8, 8, 8, 15, 0, 0, 0, 210, 262, 0, + 112, 8, 0, 8, 0, 8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 171, 158, 172, 173, + 174, 163, 160, 161, 162, 164, 166, 169, 165, 167, + 168, 170, 155, 156, 0, 123, 0, 124, 127, 131, + 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 226, 35, 218, 253, 230, 235, 236, 232, + 233, 234, 245, 244, 248, 252, 250, 251, 249, 247, + 256, 258, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 121, 0, 0, 8, 8, + 8, 8, 8, 15, 0, 0, 0, 211, 263, 0, 0, 0, 0, 8, 91, 0, 0, 0, 0, 0, 8, 8, 0, 8, 8, 8, 8, 0, 8, 8, - 8, 8, 8, 8, 0, 8, 0, 0, 108, 0, + 8, 8, 8, 8, 0, 8, 0, 0, 109, 0, 0, 0, 88, 11, 9, 0, 89, 8, 0, 0, 0, 0, 8, 0, 8, 0, 0, 0, 0, 8, - 0, 0, 0, 0, 0, 13, 0, 0, 129, 133, - 138, 137, 117, 0, 0, 0, 242, 237, 0, 0, - 228, 0, 99, 8, 100, 101, 102, 0, 0, 95, - 0, 114, 115, 116, 0, 0, 0, 0, 0, 0, - 0, 0, 215, 0, 207, 211, 214, 206, 208, 8, - 8, 209, 0, 0, 0, 0, 264, 0, 0, 8, + 0, 0, 0, 0, 0, 13, 0, 0, 130, 134, + 139, 138, 118, 0, 0, 0, 243, 238, 0, 0, + 229, 0, 100, 8, 101, 102, 103, 0, 0, 8, + 0, 115, 116, 117, 0, 0, 0, 0, 0, 0, + 0, 0, 216, 0, 208, 212, 215, 207, 209, 8, + 8, 210, 0, 0, 0, 0, 265, 0, 0, 8, 8, 8, 8, 0, 8, 8, 8, 8, 0, 8, 85, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 90, 8, - 0, 0, 0, 0, 177, 0, 198, 0, 0, 0, - 0, 186, 156, 0, 0, 0, 0, 30, 144, 124, - 0, 125, 0, 0, 0, 0, 0, 119, 103, 8, - 8, 8, 0, 0, 200, 0, 8, 8, 8, 8, - 8, 16, 0, 0, 8, 92, 0, 0, 0, 140, - 265, 267, 142, 0, 37, 0, 39, 176, 41, 48, - 43, 51, 175, 86, 0, 52, 0, 54, 84, 0, - 49, 0, 36, 8, 59, 0, 8, 0, 110, 8, - 0, 12, 10, 66, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 8, 0, 0, 149, 145, 0, - 31, 14, 238, 239, 0, 240, 0, 0, 0, 0, - 8, 0, 0, 205, 201, 0, 44, 46, 45, 8, - 8, 0, 212, 93, 0, 0, 8, 8, 8, 8, - 8, 8, 0, 56, 8, 62, 8, 112, 8, 0, - 8, 0, 0, 184, 0, 0, 8, 0, 0, 192, - 147, 148, 0, 150, 0, 0, 0, 96, 97, 64, - 0, 0, 174, 60, 61, 0, 0, 0, 8, 8, - 8, 8, 8, 8, 0, 8, 65, 8, 0, 8, - 178, 0, 0, 0, 0, 8, 187, 0, 0, 0, - 241, 216, 218, 202, 204, 0, 213, 0, 0, 38, - 40, 53, 55, 50, 58, 0, 63, 113, 0, 181, - 0, 8, 0, 0, 189, 0, 8, 0, 203, 141, - 143, 8, 0, 8, 0, 8, 185, 8, 8, 0, - 8, 193, 146, 57, 0, 179, 0, 183, 199, 188, - 0, 191, 8, 8, 8, 180, 182, 190 + 0, 0, 0, 0, 178, 0, 199, 0, 0, 0, + 0, 187, 157, 0, 0, 0, 0, 30, 145, 125, + 0, 126, 0, 0, 0, 0, 0, 120, 104, 8, + 8, 96, 8, 0, 0, 201, 0, 8, 8, 8, + 8, 8, 16, 0, 0, 8, 92, 0, 0, 0, + 141, 266, 268, 143, 0, 37, 0, 39, 177, 41, + 48, 43, 51, 176, 86, 0, 52, 0, 54, 84, + 0, 49, 0, 36, 8, 59, 0, 8, 0, 111, + 8, 0, 12, 10, 66, 0, 0, 0, 0, 8, + 0, 0, 0, 0, 0, 8, 0, 0, 150, 146, + 0, 31, 14, 239, 240, 0, 241, 0, 0, 0, + 0, 8, 0, 0, 206, 202, 0, 44, 46, 45, + 8, 8, 0, 213, 93, 0, 0, 8, 8, 8, + 8, 8, 8, 0, 56, 8, 62, 8, 113, 8, + 0, 8, 0, 0, 185, 0, 0, 8, 0, 0, + 193, 148, 149, 0, 151, 0, 0, 0, 97, 98, + 64, 0, 0, 175, 60, 61, 0, 0, 0, 8, + 8, 8, 8, 8, 8, 0, 8, 65, 8, 0, + 8, 179, 0, 0, 0, 0, 8, 188, 0, 0, + 0, 242, 217, 219, 203, 205, 0, 214, 0, 0, + 38, 40, 53, 55, 50, 58, 0, 63, 114, 0, + 182, 0, 8, 0, 0, 190, 0, 8, 0, 204, + 142, 144, 8, 0, 8, 0, 8, 186, 8, 8, + 0, 8, 194, 147, 57, 0, 180, 0, 184, 200, + 189, 0, 192, 8, 8, 8, 181, 183, 191 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -1158,116 +1163,116 @@ static const grib_yytype_int16 grib_yydefgoto[] = { -1, 80, 289, 545, 567, 504, 615, 83, 668, 176, 177, 178, 84, 85, 86, 665, 666, 243, 290, 442, - 443, 87, 88, 89, 90, 91, 92, 93, 683, 684, + 443, 87, 88, 89, 90, 91, 92, 93, 684, 685, 94, 95, 506, 507, 96, 179, 180, 181, 182, 183, 184, 185, 186, 187, 97, 616, 617, 99, 100, 101 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -648 +#define YYPACT_NINF -655 static const grib_yytype_int16 grib_yypact[] = { - 1287, -648, -84, -51, -27, 39, 48, 101, 113, 144, - 186, 195, 216, 27, 222, 236, 190, 247, 258, 277, - 281, 282, 284, 285, 286, 287, 288, 289, 291, 292, - 293, 294, 262, 296, 295, 297, 299, 298, 300, 310, - 311, 312, 313, 316, 317, 318, 319, 320, 245, 322, - 323, 22, 23, 41, 324, 1665, 307, -56, 325, 326, - 321, 330, 331, 332, 333, 335, 345, 346, 347, 348, - 336, 355, 356, 358, 354, 363, 10, -90, 353, -96, - 420, -648, -648, 1390, 361, -648, -648, -648, -648, -648, - -648, 249, 73, -648, -648, -648, -648, 19, -648, -648, - -648, -648, 1665, 1665, 373, 376, 378, 380, 381, 1665, - 386, 227, 382, 388, -648, -648, 1665, -11, 391, 392, - 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, - 382, 382, 382, 382, 396, 395, 401, 399, 410, 412, - 164, 408, -88, -648, 411, 413, 414, -73, -53, 141, - 415, 1665, 416, 417, -648, 422, -648, 423, -648, 261, - 425, 427, 428, 429, -648, -648, 430, 431, 1665, 433, - -648, -648, -648, 1665, 88, -648, -648, -648, 424, 432, - 283, -648, -32, -37, 62, 434, 445, -648, 443, -648, - 437, 415, 444, 415, 440, 441, 446, -648, 449, 450, - 453, 454, 451, 452, 459, 1665, 1665, 1665, 460, 179, - -93, 458, 134, 461, -648, 466, 11, 462, 1618, -648, - -648, 448, 467, 469, -648, 470, 471, -648, 468, 472, - -648, 476, 478, 479, 483, 482, -648, -648, 486, 485, - 1665, 1665, -648, 415, 415, 489, 488, 1665, 499, 415, - 494, 493, 415, 415, 415, 415, 415, 415, 415, 415, - 415, 415, 415, 415, 415, 415, 1665, 496, 498, 1665, - 500, 501, 509, 510, 511, 504, 513, 1665, 463, 1665, - 514, 515, 249, 517, 73, 519, 520, 249, 604, -648, - -648, 527, 674, 1665, 528, 530, 531, 532, 1665, 522, - 542, 543, 557, 263, 62, 801, 551, -648, -648, 1665, - -74, 88, 88, 88, 88, 88, 88, 231, 231, 231, - 231, 231, 231, 231, 231, 1665, 1665, 559, 1665, -648, - 554, -648, 1665, 1665, 1665, 560, 561, 562, 566, 1665, - 1665, 1665, -648, 569, 570, 1665, 572, 573, 574, 575, - 576, 583, 586, 582, 583, 586, 586, 1665, 588, 415, - 586, 1665, 2, -648, 577, 578, 585, 587, 1665, 1665, - 580, 584, -648, 594, 595, 589, 266, 590, -648, -648, - -648, 597, 591, 593, 382, -648, 598, 602, -648, -648, - -648, -648, -648, -648, -648, -648, -648, -648, -648, -648, - -648, -648, 599, 605, 607, 600, 608, 610, 415, 603, - -648, 1665, 615, 415, 268, 415, 609, 35, 176, -85, - 612, -55, 89, 181, -71, -648, -648, -648, -648, -648, - -648, -648, -648, -648, -648, -648, -648, -648, -648, -648, - -648, -648, 622, -648, -61, -648, 84, -648, -648, 618, - 629, 630, 632, 625, 634, 636, 95, 627, 637, 638, - -648, 639, -648, -648, -648, -648, -648, -648, -648, -648, - -648, -648, -32, -32, -37, -37, -37, -37, -37, -37, - 62, 434, 643, 640, 645, 641, 644, 646, 647, 652, - 654, 656, 648, 650, 651, -648, 592, 658, 1665, 1665, - 1665, 1665, 1665, -648, -6, 660, 633, 586, -648, 252, - 665, 666, 664, 382, -648, 667, 672, 675, 1515, 1618, - 191, 204, 1618, 382, 382, 382, 382, 1618, 382, 415, - 217, 232, 382, 235, 1674, 382, 1709, 677, -648, 683, - 681, 684, -648, -648, -648, -63, -648, 382, 690, 688, - 696, 249, 415, 700, 415, 701, 691, 704, 249, 415, - 604, 706, 708, 315, 711, -648, -24, 25, -648, -648, - -648, -648, -648, 712, 717, 719, -648, -648, 721, 722, - -648, 718, -648, 415, -648, -648, -648, 720, 723, -648, - 1665, -648, -648, -648, 741, 724, 726, 728, 731, 732, - 733, 730, -648, 884, -648, -648, -648, -648, -648, 382, - 415, -648, 734, 735, 12, 737, -57, 738, 739, 1665, - 415, 1665, 415, 740, 415, 415, 415, 415, 742, 415, - -648, 1665, 415, 1665, 415, 415, 1665, 415, 1665, 382, - 415, 1665, 382, 1665, 415, 382, 1665, 272, -648, 415, - 729, 249, 110, -10, -648, 750, -648, 752, 249, 111, - 33, -648, -648, 747, 748, 711, -65, -648, 725, -648, - 743, -648, 736, 751, 137, 755, 757, -648, -648, 1665, - 1665, 382, 1665, -76, -648, 1618, 415, 415, 415, 382, - 382, -648, 583, 758, 415, -648, 1618, -57, 306, 860, - -648, -648, 879, 759, -648, 760, -648, -648, -648, -648, - -648, -648, -648, -648, 761, -648, 762, -648, -648, 763, - -648, 756, 551, -70, -648, 766, 415, 767, -648, 415, - 774, -648, -648, -648, 764, 81, 783, 776, 415, 786, - 789, 105, 790, 778, 415, 1665, 1665, 725, 909, 711, - -648, -648, -648, -648, 791, -648, 792, 793, 787, 788, - 415, 784, 798, -648, -648, 794, -648, -648, -648, 415, - 415, 253, -648, -648, 803, 805, 382, 382, 382, 382, - 382, 382, 797, -648, 382, -648, 415, -648, 382, 138, - 415, 796, 249, -648, 814, 161, 415, 815, 249, -648, - -648, -648, 808, 725, 816, 817, 818, -648, -648, -648, - 1618, 1109, -648, -648, -648, 819, 1618, 1618, 415, 415, - 415, 415, 415, 415, 828, 415, -648, 415, 830, 415, - -648, 831, 109, 832, 833, 415, -648, 834, 130, 315, - -648, -648, -648, -648, -648, 822, -648, 824, 825, -648, - -648, -648, -648, -648, -648, 835, -648, -648, 162, -648, - 163, 415, 837, 841, -648, 169, 415, -59, -648, -648, - -648, 415, 839, 415, 843, 415, -648, 415, 415, 851, - 415, -648, -648, -648, 844, -648, 847, -648, -648, -648, - 848, -648, 415, 415, 415, -648, -648, -648 + 1332, -655, -107, -78, -33, 131, -15, 18, 20, 28, + 55, 64, 93, 78, 130, 150, 141, 173, 211, 213, + 220, 232, 236, 265, 267, 268, 269, 270, 271, 273, + 275, 276, 165, 192, 277, 272, 274, 279, 282, 283, + 284, 285, 286, 287, 288, 290, 291, 292, 289, 294, + 295, -85, -49, 25, 296, 897, 293, 299, 298, 300, + 301, 305, 306, 308, 309, 310, 319, 322, 323, 330, + 311, 337, 338, 339, 332, 333, -12, 335, 336, -42, + 422, -655, -655, 1435, 342, -655, -655, -655, -655, -655, + -655, 224, 118, -655, -655, -655, -655, 16, -655, -655, + -655, -655, 897, 897, 343, 340, 346, 348, 355, 897, + 356, -86, 354, 363, -655, -655, 897, 59, 364, 365, + 354, 354, 354, 354, 354, 354, 354, 354, 354, 354, + 354, 354, 354, 354, 367, 368, 373, 361, 374, 376, + 186, 375, -29, -655, 369, 377, 366, 46, -11, 171, + 371, 897, 379, 380, -655, 392, -655, 395, -655, 128, + 393, 401, 411, 412, -655, -655, 413, 415, 897, 416, + -655, -655, -655, 897, -46, -655, -655, -655, 421, 428, + 414, -655, -53, -48, 143, 432, 436, -655, 439, -655, + 433, 371, 438, 371, 435, 437, 440, -655, 442, 445, + 448, 449, 450, 451, 455, 897, 897, 897, 457, 454, + 24, 456, 61, 458, -655, 459, 7, 472, 1663, -655, + -655, 463, 464, 465, -655, 466, 467, -655, 470, 469, + -655, 474, 475, 476, 479, 478, -655, -655, 480, 481, + 897, 897, -655, 371, 371, 483, 484, 897, 495, 371, + 489, 491, 371, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 897, 498, 499, 897, + 501, 502, 510, 511, 512, 473, 516, 897, 739, 897, + 517, 519, 224, 526, 118, 530, 531, 224, 372, -655, + -655, 523, 702, 897, 524, 525, 527, 533, 897, 545, + 560, 565, 566, 206, 143, 82, 558, -655, -655, 897, + -73, -46, -46, -46, -46, -46, -46, 1029, 1029, 1029, + 1029, 1029, 1029, 1029, 1029, 897, 897, 494, 897, -655, + 564, -655, 897, 897, 897, 567, 568, 569, 570, 897, + 897, 897, -655, 571, 572, 897, 574, 575, 576, 577, + 578, 585, 579, 573, 585, 579, 579, 897, 588, 371, + 579, 897, 13, -655, 580, 581, 583, 584, 897, 897, + 582, 589, -655, 591, 596, 590, 230, 594, -655, -655, + -655, 597, 592, 599, 354, -655, 608, 613, -655, -655, + -655, -655, -655, -655, -655, -655, -655, -655, -655, -655, + -655, -655, 609, 615, 618, 612, 623, 624, 371, 617, + -655, 897, 628, 371, 254, 371, 621, 77, 19, -82, + 627, -52, 84, 178, -68, -655, -655, -655, -655, -655, + -655, -655, -655, -655, -655, -655, -655, -655, -655, -655, + -655, -655, 629, -655, -59, -655, 107, -655, -655, 640, + 641, 642, 643, 636, 644, 645, 94, 637, 646, 647, + -655, 638, -655, -655, -655, -655, -655, -655, -655, -655, + -655, -655, -53, -53, -48, -48, -48, -48, -48, -48, + 143, 432, 652, 648, 653, 649, 656, 657, 654, 668, + 669, 670, 666, 672, 673, -655, 671, 675, 897, 897, + 897, 897, 897, -655, 181, 677, 665, 579, -655, 247, + 678, 679, 683, 354, -655, 680, 676, 687, 1560, 1663, + -66, 86, 1663, 354, 354, 354, 354, 1663, 354, 371, + 193, 198, 354, 199, 933, 354, 986, 689, -655, 698, + 690, 693, -655, -655, -655, -104, -655, 354, 655, 694, + 707, 224, 371, 710, 371, 712, 696, 718, 224, 371, + 372, 719, 720, 302, 716, -655, -21, -18, -655, -655, + -655, -655, -655, 721, 724, 725, -655, -655, 726, 727, + -655, 717, -655, 371, -655, -655, -655, 723, 728, 354, + 897, -655, -655, -655, 747, 722, 729, 734, 735, 736, + 740, 731, -655, 888, -655, -655, -655, -655, -655, 354, + 371, -655, 738, 741, 11, 744, -71, 745, 746, 897, + 371, 897, 371, 748, 371, 371, 371, 371, 749, 371, + -655, 897, 371, 897, 371, 371, 897, 371, 897, 354, + 371, 897, 354, 897, 371, 354, 897, 259, -655, 371, + 756, 224, 116, -13, -655, 759, -655, 760, 224, 117, + 22, -655, -655, 742, 755, 716, -62, -655, 730, -655, + 765, -655, 758, 761, 154, 764, 767, -655, -655, 897, + 897, -655, 354, 897, -70, -655, 1663, 371, 371, 371, + 354, 354, -655, 585, 743, 371, -655, 1663, -71, 434, + 886, -655, -655, 890, 768, -655, 770, -655, -655, -655, + -655, -655, -655, -655, -655, 771, -655, 772, -655, -655, + 773, -655, 774, 558, -64, -655, 778, 371, 779, -655, + 371, 780, -655, -655, -655, 781, 60, 789, 762, 371, + 791, 792, 74, 795, 785, 371, 897, 897, 730, 915, + 716, -655, -655, -655, -655, 797, -655, 798, 799, 793, + 794, 371, 800, 802, -655, -655, 804, -655, -655, -655, + 371, 371, 251, -655, -655, 806, 807, 354, 354, 354, + 354, 354, 354, 812, -655, 354, -655, 371, -655, 354, + 156, 371, 808, 224, -655, 818, 158, 371, 819, 224, + -655, -655, -655, 815, 730, 823, 824, 827, -655, -655, + -655, 1663, 1170, -655, -655, -655, 832, 1663, 1663, 371, + 371, 371, 371, 371, 371, 828, 371, -655, 371, 838, + 371, -655, 839, 104, 840, 841, 371, -655, 842, 111, + 302, -655, -655, -655, -655, -655, 811, -655, 830, 831, + -655, -655, -655, -655, -655, -655, 836, -655, -655, 160, + -655, 166, 371, 837, 844, -655, 168, 371, -50, -655, + -655, -655, 371, 848, 371, 849, 371, -655, 371, 371, + 850, 371, -655, -655, -655, 845, -655, 846, -655, -655, + -655, 847, -655, 371, 371, 371, -655, -655, -655 }; /* YYPGOTO[NTERM-NUM]. */ static const grib_yytype_int16 grib_yypgoto[] = { - -648, -648, 8, 529, -648, -349, 0, -648, -647, 631, - -305, -202, -648, -648, -648, -443, 142, -33, 208, -648, - 426, -648, -648, -648, -648, -280, 698, -648, -648, 302, - -648, -80, -343, -648, -86, -130, 809, -54, 85, -39, - -159, 661, -648, -46, -648, 14, 372, -648, -648, 892 + -655, -655, 5, 528, -655, -351, 0, -655, -654, -16, + -307, -178, -655, -655, -655, -443, 145, 549, 108, -655, + 423, -655, -655, -655, -655, -254, 697, -655, -655, 307, + -655, -84, -347, -655, -80, -148, 816, -47, 69, -44, + -164, 674, -655, -54, -655, 10, 382, -655, -655, 895 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1276,386 +1281,374 @@ static const grib_yytype_int16 grib_yypgoto[] = #define YYTABLE_NINF -9 static const grib_yytype_int16 grib_yytable[] = { - 82, 564, 419, 342, 463, 509, 227, 424, 81, 304, - 782, 224, 510, 511, 98, 561, 562, 515, 747, 561, - 562, 561, 562, 228, 346, 347, 348, 212, 208, 208, - 208, 57, 682, 167, 762, 275, 354, 213, 221, 222, - 78, 223, 355, 210, 307, 383, 276, 102, 349, 464, - 170, 552, 221, 222, 78, 223, 231, 232, 280, 350, - 763, 281, 282, 175, 647, 559, 229, 288, 225, 226, - 246, 748, 189, 648, 563, 413, 415, 882, 283, 244, - 103, 554, 284, 219, 249, 312, 313, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 317, 803, 647, 104, 291, 318, 57, 314, 315, - 316, 98, 669, 221, 222, 78, 223, 175, 247, 242, - 242, 601, 241, 248, 602, 242, 738, 306, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 229, 209, 362, 698, 154, 156, 164, 165, - 114, 115, 670, 155, 157, 512, 221, 222, 78, 223, - 343, 671, 548, 353, 605, 158, 480, 549, 105, 744, - 106, 107, 159, 319, 320, 321, 322, 323, 324, 359, - 465, 307, 307, 307, 307, 307, 307, 307, 307, 307, - 307, 307, 307, 307, 307, 167, 225, 226, 161, 162, - 163, 346, 347, 348, 221, 222, 78, 223, 565, 543, - 544, 169, 170, 171, 172, 175, 555, 790, 363, 173, - 242, 556, 575, 749, 108, 349, 174, 576, 221, 222, - 78, 223, 221, 222, 78, 223, 350, 736, 742, 164, - 165, 796, 737, 743, 109, 861, 447, 448, 175, 175, - 161, 162, 163, 221, 222, 78, 223, 466, 467, 468, - 469, 470, 471, 357, 754, 828, 866, 241, 358, 755, - 829, 653, 285, 110, 175, 286, 287, 175, 660, 166, - 474, 475, 476, 477, 478, 479, 167, 175, 834, 872, - 874, 164, 165, 835, 873, 875, 879, 272, 273, 497, - 168, 880, 169, 170, 171, 172, 175, 550, 351, 111, - 173, 551, 557, 175, 352, 516, 558, 174, 112, 118, - 619, 119, 517, 353, 241, 161, 162, 163, 346, 347, - 348, 166, 639, 621, 642, 227, 175, 241, 167, 224, - 175, 175, 175, 771, 224, 113, 631, 175, 175, 175, - 241, 529, 349, 116, 169, 170, 171, 172, 240, 117, - 241, 633, 173, 350, 636, 241, 164, 165, 241, 174, - 120, 735, 221, 222, 78, 223, 151, 761, 741, 601, - 601, 121, 606, 815, 296, 297, 458, 459, 681, 523, - 524, 135, 242, 543, 544, 561, 562, 731, 732, 329, - 122, 331, 472, 473, 123, 124, 166, 125, 126, 127, - 128, 129, 130, 167, 131, 132, 133, 134, 137, 175, - 214, 140, 311, 141, 749, 136, 138, 168, 139, 169, - 170, 171, 172, 142, 143, 144, 145, 173, 188, 146, - 147, 148, 149, 150, 174, 152, 153, 160, 190, 191, - 192, 379, 380, 193, 194, 195, 196, 385, 197, 202, + 82, 564, 463, 509, 304, 81, 208, 224, 510, 511, + 98, 748, 227, 515, 164, 165, 783, 57, 561, 562, + 228, 561, 562, 647, 102, 208, 307, 342, 419, 208, + 561, 562, 648, 424, 167, 346, 347, 348, 683, 154, + 763, 221, 222, 78, 223, 240, 155, 241, 231, 232, + 464, 170, 229, 103, 552, 221, 222, 78, 223, 349, + 175, 167, 246, 619, 312, 313, 764, 241, 559, 383, + 350, 225, 226, 288, 749, 156, 563, 169, 170, 171, + 172, 212, 157, 219, 554, 173, 883, 314, 315, 316, + 317, 213, 174, 238, 275, 318, 804, 291, 104, 413, + 415, 161, 162, 163, 57, 276, 647, 98, 107, 670, + 221, 222, 78, 223, 175, 669, 242, 242, 671, 306, + 283, 209, 242, 739, 284, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 229, + 362, 108, 164, 165, 699, 221, 222, 78, 223, 158, + 550, 109, 343, 354, 551, 353, 159, 110, 745, 355, + 605, 480, 465, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 280, 111, 512, + 281, 282, 166, 221, 222, 78, 223, 112, 247, 167, + 357, 344, 241, 248, 241, 358, 791, 221, 222, 78, + 223, 114, 115, 168, 548, 169, 170, 171, 172, 549, + 797, 555, 175, 173, 460, 621, 556, 242, 363, 241, + 174, 575, 113, 750, 377, 378, 576, 221, 222, 78, + 223, 565, 543, 544, 221, 222, 78, 223, 447, 448, + 862, 225, 226, 737, 743, 175, 175, 867, 738, 744, + 402, 296, 297, 405, 319, 320, 321, 322, 323, 324, + 105, 116, 106, 416, 466, 467, 468, 469, 470, 471, + 118, 175, 119, 117, 175, 474, 475, 476, 477, 478, + 479, 755, 453, 829, 175, 835, 756, 873, 830, 461, + 836, 497, 874, 875, 135, 880, 120, 653, 876, 329, + 881, 331, 285, 175, 660, 286, 287, 516, 601, 557, + 175, 602, 483, 558, 517, 353, 485, 486, 487, 272, + 273, 136, 631, 492, 493, 494, 241, 633, 636, 458, + 459, 241, 241, 175, 121, 224, 122, 175, 175, 175, + 224, 227, 772, 123, 175, 175, 175, 221, 222, 78, + 223, 379, 380, 523, 524, 124, 639, 385, 642, 125, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 198, 199, 200, 201, 203, 204, - 610, 205, 161, 162, 163, 206, 211, 620, 622, 220, - 624, 625, 626, 627, 207, 629, 233, 632, 634, 635, - 637, 234, 640, 235, 236, 237, 175, 175, 175, 175, - 175, 239, 832, 245, 649, 241, 250, 251, 838, 618, - 267, 242, 623, 164, 165, 266, 268, 628, 242, 242, - 269, 242, 242, 242, 242, 270, 242, 271, 242, 242, - 242, 242, 274, 242, 277, 279, 278, 294, 295, 292, - 293, 309, 288, 325, 310, 242, 298, 693, 299, 300, - 301, 302, 303, 166, 305, 326, 327, 514, 328, 330, - 167, 332, 333, 224, 335, 336, 694, 334, 337, 338, - 224, 364, 339, 340, 168, 212, 169, 170, 171, 172, - 341, 345, 722, 356, 173, 722, 360, 361, 414, 368, - 365, 174, 213, 366, 367, 369, 723, 425, 370, 726, - 371, 372, 729, 373, 374, 376, 538, 242, 375, 381, - 382, 542, 384, 546, 386, 387, 403, 175, 404, 175, - 406, 407, 408, 409, 410, 411, 412, 417, 418, 175, - 420, 175, 422, 423, 175, 454, 175, 242, 760, 175, - 242, 175, 353, 242, 175, 224, 769, 770, 426, 444, - 449, 224, 450, 451, 452, 455, 456, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 457, 440, 441, 462, 484, 765, 482, 175, 175, 242, - 488, 489, 490, 161, 162, 163, 491, 242, 242, 800, - 801, 495, 496, 498, 499, 500, 501, 502, 503, 505, - 508, 513, 352, 355, 351, 518, 354, 520, 521, 519, - 526, 530, 525, 528, 522, 531, 527, 594, 533, 532, - 534, 536, 535, 537, 164, 165, 539, 630, 541, 553, - 238, 547, 568, 818, 819, 820, 821, 822, 823, 560, - 445, 825, 224, 569, 570, 827, 571, 572, 224, 577, - 654, 573, 656, 574, 578, 579, 581, 661, 583, 604, - 587, 580, 582, 584, 166, 588, 585, 589, 586, 590, - 591, 167, 592, 593, 242, 242, 242, 242, 242, 242, - 595, 678, 242, 603, 609, 168, 242, 169, 170, 171, - 172, 607, 608, 611, 612, 173, 644, 613, 643, 446, - 843, 845, 174, 645, 650, 646, 847, 848, 695, 652, - 161, 162, 163, 651, 655, 657, 658, 659, 704, 663, - 706, 664, 708, 709, 710, 711, 672, 713, 344, 667, - 715, 673, 717, 718, 674, 720, 675, 676, 724, 682, - 677, 679, 728, 750, 680, 691, 734, 733, 686, 685, - 687, 164, 165, 688, 689, 690, 774, 751, 752, 696, - 697, 377, 378, 699, 701, 702, 707, 739, 712, 740, - 745, 746, 756, 753, 757, 775, 772, 789, 781, 776, - 777, 778, 779, 780, 766, 767, 768, 402, 784, 786, - 405, 166, 773, 161, 162, 163, 788, 791, 167, 794, - 416, 792, 795, 798, 797, 802, 804, 805, 806, 807, - 808, 810, 168, 831, 169, 170, 171, 172, 824, 453, - 812, 783, 173, 460, 785, 811, 461, 787, 816, 174, - 817, 833, 837, 839, 164, 165, 793, 846, 840, 841, - 842, 855, 799, 858, 860, 862, 863, 865, 868, 483, - 869, 870, 884, 485, 486, 487, 886, 871, 809, 877, - 492, 493, 494, 878, 890, 566, 892, 813, 814, 893, - 894, 867, 421, 308, 166, 764, 662, 481, 700, 230, - 0, 167, 0, 0, 826, 0, 0, 0, 830, 0, - 0, 0, 0, 0, 836, 168, 0, 169, 170, 171, - 172, 0, 0, 692, 0, 173, 0, 0, 0, 0, - 0, 0, 174, 0, 0, 0, 849, 850, 851, 852, - 853, 854, 0, 856, 0, 857, 0, 859, 0, 0, - 0, 0, 540, 864, 0, 0, 0, 0, 0, 0, + 398, 399, 400, 401, 601, 425, 762, 606, 601, 543, + 544, 816, 561, 562, 732, 733, 472, 473, 126, 242, + 127, 128, 129, 130, 131, 540, 132, 736, 133, 134, + 137, 138, 140, 139, 742, 141, 142, 143, 144, 145, + 146, 147, 682, 148, 149, 150, 175, 152, 153, 160, + 151, 190, 214, 191, 188, 750, 426, 189, 193, 194, + 192, 195, 196, 197, 202, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 198, 440, + 441, 199, 200, 161, 162, 163, 346, 347, 348, 201, + 203, 204, 205, 206, 207, 234, 233, 514, 210, 211, + 220, 235, 236, 161, 162, 163, 346, 347, 348, 237, + 349, 239, 596, 597, 598, 599, 600, 241, 245, 250, + 251, 350, 269, 267, 164, 165, 266, 279, 268, 270, + 349, 271, 277, 175, 175, 175, 175, 175, 288, 274, + 278, 350, 292, 293, 164, 165, 538, 294, 242, 618, + 295, 542, 623, 546, 298, 242, 242, 628, 242, 242, + 242, 242, 299, 242, 166, 242, 242, 242, 242, 833, + 242, 167, 300, 301, 302, 839, 303, 305, 309, 694, + 310, 325, 242, 311, 166, 168, 326, 169, 170, 171, + 172, 167, 327, 330, 328, 173, 332, 335, 333, 224, + 336, 334, 174, 337, 338, 168, 224, 169, 170, 171, + 172, 339, 340, 351, 723, 173, 341, 723, 345, 352, + 361, 356, 174, 360, 242, 212, 364, 365, 213, 366, + 367, 368, 369, 704, 411, 706, 370, 371, 372, 373, + 374, 376, 375, 381, 242, 715, 382, 717, 384, 386, + 720, 482, 722, 387, 175, 726, 175, 728, 403, 404, + 731, 406, 407, 408, 409, 410, 175, 630, 175, 412, + 417, 175, 418, 175, 242, 353, 175, 242, 175, 420, + 242, 175, 224, 422, 423, 444, 449, 450, 224, 451, + 654, 244, 656, 759, 760, 452, 249, 661, 454, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 455, 175, 175, 766, 242, 456, 457, + 462, 678, 801, 802, 484, 242, 242, 488, 489, 490, + 491, 508, 505, 495, 496, 498, 499, 500, 501, 502, + 503, 513, 351, 354, 520, 352, 355, 518, 696, 521, + 526, 161, 162, 163, 519, 522, 525, 527, 705, 528, + 707, 530, 709, 710, 711, 712, 531, 714, 533, 532, + 716, 534, 718, 719, 535, 721, 536, 537, 725, 224, + 539, 541, 729, 547, 553, 224, 560, 734, 161, 162, + 163, 359, 164, 165, 568, 569, 570, 571, 572, 577, + 580, 573, 574, 578, 579, 581, 583, 587, 445, 650, + 582, 584, 242, 242, 242, 242, 242, 242, 585, 586, + 242, 588, 589, 590, 242, 767, 768, 769, 591, 164, + 165, 604, 166, 774, 592, 593, 594, 595, 612, 167, + 603, 844, 846, 609, 607, 608, 611, 848, 849, 613, + 643, 644, 645, 168, 646, 169, 170, 171, 172, 651, + 652, 658, 784, 173, 655, 786, 657, 446, 788, 166, + 174, 659, 663, 664, 667, 672, 167, 794, 673, 677, + 674, 675, 676, 800, 679, 683, 692, 686, 751, 680, + 168, 687, 169, 170, 171, 172, 688, 689, 690, 810, + 173, 773, 691, 697, 414, 746, 698, 174, 814, 815, + 700, 702, 703, 735, 708, 713, 740, 741, 747, 752, + 753, 757, 775, 754, 758, 827, 776, 793, 777, 831, + 778, 779, 780, 781, 790, 837, 782, 161, 162, 163, + 785, 787, 789, 792, 795, 796, 161, 162, 163, 798, + 799, 803, 805, 806, 807, 808, 809, 850, 851, 852, + 853, 854, 855, 529, 857, 832, 858, 811, 860, 812, + 813, 817, 818, 825, 865, 834, 838, 869, 164, 165, + 840, 856, 161, 162, 163, 841, 842, 164, 165, 843, + 847, 859, 861, 863, 864, 866, 870, 871, 872, 878, + 877, 885, 887, 891, 566, 882, 879, 893, 894, 895, + 884, 421, 886, 662, 888, 868, 889, 890, 166, 892, + 308, 765, 230, 164, 165, 167, 0, 166, 701, 0, + 481, 896, 897, 898, 167, 161, 162, 163, 0, 168, + 0, 169, 170, 171, 172, 0, 0, 693, 168, 173, + 169, 170, 171, 172, 0, 0, 174, 0, 173, 0, + 0, 0, 0, 166, 0, 174, 0, 0, 0, 0, + 167, 0, 0, 0, 0, 0, 164, 165, 161, 162, + 163, 0, 0, 0, 168, 0, 169, 170, 171, 172, + 0, 0, 610, 0, 638, 0, 0, 0, 0, 620, + 622, 174, 624, 625, 626, 627, 0, 629, 0, 632, + 634, 635, 637, 0, 640, 0, 166, 0, 0, 164, + 165, 0, 0, 167, 0, 0, 649, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 168, 0, 169, + 170, 171, 172, 0, 0, 0, 0, 641, 0, 0, + 0, 0, 0, 0, 174, 0, 0, 0, 0, 166, + 0, 0, 0, 0, 0, 0, 167, 0, 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 876, - 0, 0, 0, 0, 881, 0, 0, 0, 0, 883, - 0, 885, 0, 887, 0, 888, 889, 0, 891, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 895, 896, 897, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 215, 3, 0, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 0, 0, 596, - 597, 598, 599, 600, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 0, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 0, 45, 46, 0, - 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 0, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 0, - 69, 70, 71, 72, 73, 74, 0, 0, 75, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 216, 0, 0, 217, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 844, 0, 0, 0, 0, - 703, 0, 705, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 714, 0, 716, 0, 0, 719, 0, 721, - 0, 0, 725, 0, 727, 0, 0, 730, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -8, 1, 0, - 0, 2, 3, 0, 0, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, - 758, 759, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 0, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 0, 45, 46, 0, 0, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 0, 69, 70, - 71, 72, 73, 74, 215, 3, 75, 0, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, - 76, 77, 78, 79, 0, 14, 15, 16, 17, 18, + 0, 0, 169, 170, 171, 172, 0, 0, 695, 0, + 173, 0, 0, 0, 0, 0, 0, 174, 0, 0, + 0, 0, 0, 0, 215, 3, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 724, 0, + 0, 727, 0, 0, 730, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 0, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 0, 45, 46, - 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 0, 761, 47, 0, 0, 0, 0, 0, 0, 770, + 771, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 0, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 0, 69, 70, 71, 72, 73, 74, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 216, 0, 0, 217, 0, 218, 215, - 3, 0, 0, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 217, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 845, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 819, 820, 821, 822, + 823, 824, -8, 1, 826, 0, 2, 3, 828, 0, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 0, 0, 0, 0, 0, 0, 0, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 0, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 0, + 45, 46, 0, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 0, 69, 70, 71, 72, 73, 74, 215, + 3, 75, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 0, 0, 76, 77, 78, 79, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 0, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 0, 45, 46, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 54, 55, 56, 0, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 0, 69, 70, 71, 72, - 73, 74, 215, 3, 75, 0, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 0, 0, 614, 0, - 0, 217, 0, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 0, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 0, 45, 46, 0, 0, - 47, 0, 0, 0, 161, 162, 163, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 0, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 0, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 0, 69, - 70, 71, 72, 73, 74, 164, 165, 75, 161, 162, - 163, 0, 0, 0, 164, 165, 0, 0, 0, 0, - 0, 216, 0, 0, 217, 0, 0, 0, 0, 0, + 73, 74, 0, 0, 75, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, + 0, 217, 0, 218, 215, 3, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, + 0, 0, 0, 0, 0, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 0, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 0, 45, 46, + 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 0, 69, 70, 71, 72, 73, 74, 215, 3, 75, + 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 0, 614, 0, 0, 217, 0, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 0, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 0, 45, 46, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 0, 0, 0, 164, - 165, 0, 167, 0, 166, 0, 0, 0, 0, 0, - 0, 167, 0, 0, 0, 0, 168, 0, 169, 170, - 171, 172, 0, 0, 0, 168, 173, 169, 170, 171, - 172, 0, 0, 174, 0, 638, 0, 0, 0, 166, - 0, 0, 174, 0, 0, 0, 167, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 168, 0, 169, 170, 171, 172, 0, 0, 0, 0, - 641, 0, 0, 0, 0, 0, 0, 174 + 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 0, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 0, 69, 70, 71, 72, 73, 74, + 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 216, 0, 0, 217 }; #define grib_yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-648))) + (!!((Yystate) == (-655))) #define grib_yytable_value_is_error(Yytable_value) \ YYID (0) static const grib_yytype_int16 grib_yycheck[] = { - 0, 444, 282, 205, 309, 354, 92, 287, 0, 168, - 80, 91, 355, 356, 0, 80, 81, 360, 665, 80, - 81, 80, 81, 4, 22, 23, 24, 123, 18, 18, - 18, 88, 108, 107, 110, 123, 129, 133, 123, 124, - 125, 126, 135, 133, 174, 247, 134, 131, 46, 123, - 124, 136, 123, 124, 125, 126, 102, 103, 131, 57, - 136, 134, 135, 55, 127, 136, 123, 137, 123, 124, - 116, 136, 128, 136, 135, 277, 278, 136, 131, 112, - 131, 136, 135, 83, 117, 117, 118, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 138, 749, 127, 131, 151, 143, 88, 140, 141, - 142, 97, 136, 123, 124, 125, 126, 109, 129, 111, - 112, 127, 133, 134, 130, 117, 136, 173, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 123, 133, 133, 133, 124, 124, 60, 61, - 123, 124, 127, 131, 131, 357, 123, 124, 125, 126, - 206, 136, 127, 209, 507, 124, 325, 132, 129, 136, - 131, 123, 131, 111, 112, 113, 114, 115, 116, 212, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 107, 123, 124, 19, 20, - 21, 22, 23, 24, 123, 124, 125, 126, 124, 125, - 126, 123, 124, 125, 126, 207, 127, 136, 218, 131, - 212, 132, 127, 666, 123, 46, 138, 132, 123, 124, - 125, 126, 123, 124, 125, 126, 57, 127, 127, 60, - 61, 136, 132, 132, 131, 136, 292, 293, 240, 241, - 19, 20, 21, 123, 124, 125, 126, 311, 312, 313, - 314, 315, 316, 129, 127, 127, 136, 133, 134, 132, - 132, 551, 131, 129, 266, 134, 135, 269, 558, 100, - 319, 320, 321, 322, 323, 324, 107, 279, 127, 127, - 127, 60, 61, 132, 132, 132, 127, 133, 134, 345, - 121, 132, 123, 124, 125, 126, 298, 131, 129, 123, - 131, 135, 131, 305, 135, 361, 135, 138, 123, 129, - 129, 131, 368, 369, 133, 19, 20, 21, 22, 23, - 24, 100, 534, 129, 536, 421, 328, 133, 107, 419, - 332, 333, 334, 692, 424, 129, 129, 339, 340, 341, - 133, 384, 46, 131, 123, 124, 125, 126, 131, 123, - 133, 129, 131, 57, 129, 133, 60, 61, 133, 138, - 123, 651, 123, 124, 125, 126, 131, 682, 658, 127, - 127, 123, 130, 130, 123, 124, 123, 124, 590, 123, - 124, 129, 384, 125, 126, 80, 81, 125, 126, 191, - 123, 193, 317, 318, 123, 123, 100, 123, 123, 123, - 123, 123, 123, 107, 123, 123, 123, 123, 123, 411, - 0, 123, 139, 123, 867, 129, 129, 121, 129, 123, - 124, 125, 126, 123, 123, 123, 123, 131, 131, 123, - 123, 123, 123, 123, 138, 123, 123, 123, 123, 123, - 129, 243, 244, 123, 123, 123, 123, 249, 123, 123, + 0, 444, 309, 354, 168, 0, 18, 91, 355, 356, + 0, 665, 92, 360, 60, 61, 80, 88, 80, 81, + 4, 80, 81, 127, 131, 18, 174, 205, 282, 18, + 80, 81, 136, 287, 107, 22, 23, 24, 108, 124, + 110, 123, 124, 125, 126, 131, 131, 133, 102, 103, + 123, 124, 123, 131, 136, 123, 124, 125, 126, 46, + 55, 107, 116, 129, 117, 118, 136, 133, 136, 247, + 57, 123, 124, 137, 136, 124, 135, 123, 124, 125, + 126, 123, 131, 83, 136, 131, 136, 140, 141, 142, + 138, 133, 138, 109, 123, 143, 750, 151, 131, 277, + 278, 19, 20, 21, 88, 134, 127, 97, 123, 127, + 123, 124, 125, 126, 109, 136, 111, 112, 136, 173, + 131, 133, 117, 136, 135, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 123, + 133, 123, 60, 61, 133, 123, 124, 125, 126, 124, + 131, 131, 206, 129, 135, 209, 131, 129, 136, 135, + 507, 325, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 131, 123, 357, + 134, 135, 100, 123, 124, 125, 126, 123, 129, 107, + 129, 207, 133, 134, 133, 134, 136, 123, 124, 125, + 126, 123, 124, 121, 127, 123, 124, 125, 126, 132, + 136, 127, 207, 131, 132, 129, 132, 212, 218, 133, + 138, 127, 129, 666, 240, 241, 132, 123, 124, 125, + 126, 124, 125, 126, 123, 124, 125, 126, 292, 293, + 136, 123, 124, 127, 127, 240, 241, 136, 132, 132, + 266, 123, 124, 269, 111, 112, 113, 114, 115, 116, + 129, 131, 131, 279, 311, 312, 313, 314, 315, 316, + 129, 266, 131, 123, 269, 319, 320, 321, 322, 323, + 324, 127, 298, 127, 279, 127, 132, 127, 132, 305, + 132, 345, 132, 127, 129, 127, 123, 551, 132, 191, + 132, 193, 131, 298, 558, 134, 135, 361, 127, 131, + 305, 130, 328, 135, 368, 369, 332, 333, 334, 133, + 134, 129, 129, 339, 340, 341, 133, 129, 129, 123, + 124, 133, 133, 328, 123, 419, 123, 332, 333, 334, + 424, 421, 693, 123, 339, 340, 341, 123, 124, 125, + 126, 243, 244, 123, 124, 123, 534, 249, 536, 123, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 129, 129, 129, 129, 123, 123, - 513, 123, 19, 20, 21, 131, 133, 520, 521, 128, - 523, 524, 525, 526, 131, 528, 123, 530, 531, 532, - 533, 125, 535, 125, 124, 124, 498, 499, 500, 501, - 502, 125, 792, 125, 547, 133, 125, 125, 798, 519, - 125, 513, 522, 60, 61, 129, 125, 527, 520, 521, - 131, 523, 524, 525, 526, 125, 528, 125, 530, 531, - 532, 533, 134, 535, 133, 131, 133, 125, 125, 133, - 133, 127, 137, 119, 122, 547, 131, 603, 131, 131, - 131, 131, 131, 100, 131, 120, 123, 359, 131, 125, - 107, 131, 131, 653, 125, 125, 609, 131, 125, 125, - 660, 133, 131, 131, 121, 123, 123, 124, 125, 126, - 131, 131, 638, 135, 131, 641, 135, 131, 135, 131, - 133, 138, 133, 133, 133, 133, 639, 3, 132, 642, - 132, 132, 645, 130, 132, 130, 408, 609, 132, 130, - 132, 413, 123, 415, 130, 132, 130, 619, 130, 621, - 130, 130, 123, 123, 123, 131, 123, 123, 123, 631, - 123, 633, 123, 123, 636, 123, 638, 639, 681, 641, - 642, 643, 698, 645, 646, 735, 689, 690, 54, 132, - 132, 741, 132, 132, 132, 123, 123, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 123, 77, 78, 132, 130, 685, 127, 679, 680, 681, - 130, 130, 130, 19, 20, 21, 130, 689, 690, 745, - 746, 132, 132, 131, 131, 131, 131, 131, 125, 123, - 128, 123, 135, 135, 129, 135, 129, 123, 123, 135, - 123, 123, 132, 130, 135, 123, 135, 135, 123, 130, - 123, 123, 132, 123, 60, 61, 133, 529, 123, 127, - 109, 132, 124, 776, 777, 778, 779, 780, 781, 127, - 76, 784, 832, 124, 124, 788, 124, 132, 838, 132, - 552, 127, 554, 127, 127, 127, 123, 559, 123, 136, - 123, 132, 132, 132, 100, 123, 132, 123, 132, 123, - 132, 107, 132, 132, 776, 777, 778, 779, 780, 781, - 132, 583, 784, 133, 130, 121, 788, 123, 124, 125, - 126, 136, 136, 136, 132, 131, 123, 132, 131, 135, - 810, 811, 138, 132, 124, 131, 816, 817, 610, 123, - 19, 20, 21, 135, 124, 124, 135, 123, 620, 123, - 622, 123, 624, 625, 626, 627, 124, 629, 207, 128, - 632, 124, 634, 635, 125, 637, 125, 125, 640, 108, - 132, 131, 644, 128, 131, 125, 127, 649, 132, 135, - 132, 60, 61, 132, 132, 132, 6, 124, 132, 135, - 135, 240, 241, 136, 136, 136, 136, 127, 136, 127, - 133, 133, 127, 132, 127, 6, 128, 123, 132, 130, - 130, 130, 130, 130, 686, 687, 688, 266, 132, 132, - 269, 100, 694, 19, 20, 21, 132, 124, 107, 123, - 279, 135, 123, 135, 124, 6, 125, 125, 125, 132, - 132, 137, 121, 127, 123, 124, 125, 126, 131, 298, - 136, 723, 131, 132, 726, 137, 305, 729, 135, 138, - 135, 127, 127, 135, 60, 61, 738, 128, 132, 132, - 132, 123, 744, 123, 123, 123, 123, 123, 136, 328, - 136, 136, 123, 332, 333, 334, 123, 132, 760, 132, - 339, 340, 341, 132, 123, 446, 132, 769, 770, 132, - 132, 839, 284, 174, 100, 683, 560, 326, 616, 97, - -1, 107, -1, -1, 786, -1, -1, -1, 790, -1, - -1, -1, -1, -1, 796, 121, -1, 123, 124, 125, - 126, -1, -1, 129, -1, 131, -1, -1, -1, -1, - -1, -1, 138, -1, -1, -1, 818, 819, 820, 821, - 822, 823, -1, 825, -1, 827, -1, 829, -1, -1, - -1, -1, 411, 835, -1, -1, -1, -1, -1, -1, + 262, 263, 264, 265, 127, 3, 683, 130, 127, 125, + 126, 130, 80, 81, 125, 126, 317, 318, 123, 384, + 123, 123, 123, 123, 123, 411, 123, 651, 123, 123, + 123, 129, 123, 129, 658, 123, 123, 123, 123, 123, + 123, 123, 590, 123, 123, 123, 411, 123, 123, 123, + 131, 123, 0, 123, 131, 868, 54, 128, 123, 123, + 129, 123, 123, 123, 123, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 129, 77, + 78, 129, 129, 19, 20, 21, 22, 23, 24, 129, + 123, 123, 123, 131, 131, 125, 123, 359, 133, 133, + 128, 125, 124, 19, 20, 21, 22, 23, 24, 124, + 46, 125, 498, 499, 500, 501, 502, 133, 125, 125, + 125, 57, 131, 125, 60, 61, 129, 131, 125, 125, + 46, 125, 133, 498, 499, 500, 501, 502, 137, 134, + 133, 57, 133, 133, 60, 61, 408, 125, 513, 519, + 125, 413, 522, 415, 131, 520, 521, 527, 523, 524, + 525, 526, 131, 528, 100, 530, 531, 532, 533, 793, + 535, 107, 131, 131, 131, 799, 131, 131, 127, 603, + 122, 119, 547, 139, 100, 121, 120, 123, 124, 125, + 126, 107, 123, 125, 131, 131, 131, 125, 131, 653, + 125, 131, 138, 125, 125, 121, 660, 123, 124, 125, + 126, 131, 131, 129, 638, 131, 131, 641, 131, 135, + 131, 135, 138, 135, 589, 123, 133, 133, 133, 133, + 133, 131, 133, 619, 131, 621, 132, 132, 132, 130, + 132, 130, 132, 130, 609, 631, 132, 633, 123, 130, + 636, 127, 638, 132, 619, 641, 621, 643, 130, 130, + 646, 130, 130, 123, 123, 123, 631, 529, 633, 123, + 123, 636, 123, 638, 639, 699, 641, 642, 643, 123, + 645, 646, 736, 123, 123, 132, 132, 132, 742, 132, + 552, 112, 554, 679, 680, 132, 117, 559, 123, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 123, 679, 680, 686, 682, 123, 123, + 132, 583, 746, 747, 130, 690, 691, 130, 130, 130, + 130, 128, 123, 132, 132, 131, 131, 131, 131, 131, + 125, 123, 129, 129, 123, 135, 135, 135, 610, 123, + 123, 19, 20, 21, 135, 135, 132, 135, 620, 130, + 622, 123, 624, 625, 626, 627, 123, 629, 123, 130, + 632, 123, 634, 635, 132, 637, 123, 123, 640, 833, + 133, 123, 644, 132, 127, 839, 127, 649, 19, 20, + 21, 212, 60, 61, 124, 124, 124, 124, 132, 132, + 132, 127, 127, 127, 127, 123, 123, 123, 76, 124, + 132, 132, 777, 778, 779, 780, 781, 782, 132, 132, + 785, 123, 123, 123, 789, 687, 688, 689, 132, 60, + 61, 136, 100, 695, 132, 132, 135, 132, 132, 107, + 133, 811, 812, 130, 136, 136, 136, 817, 818, 132, + 131, 123, 132, 121, 131, 123, 124, 125, 126, 135, + 123, 135, 724, 131, 124, 727, 124, 135, 730, 100, + 138, 123, 123, 123, 128, 124, 107, 739, 124, 132, + 125, 125, 125, 745, 131, 108, 125, 135, 128, 131, + 121, 132, 123, 124, 125, 126, 132, 132, 132, 761, + 131, 128, 132, 135, 135, 133, 135, 138, 770, 771, + 136, 136, 136, 127, 136, 136, 127, 127, 133, 124, + 132, 127, 6, 132, 127, 787, 6, 135, 130, 791, + 130, 130, 130, 130, 123, 797, 132, 19, 20, 21, + 132, 132, 132, 124, 123, 123, 19, 20, 21, 124, + 135, 6, 125, 125, 125, 132, 132, 819, 820, 821, + 822, 823, 824, 384, 826, 127, 828, 137, 830, 137, + 136, 135, 135, 131, 836, 127, 127, 136, 60, 61, + 135, 123, 19, 20, 21, 132, 132, 60, 61, 132, + 128, 123, 123, 123, 123, 123, 136, 136, 132, 132, + 862, 123, 123, 123, 446, 867, 132, 132, 132, 132, + 872, 284, 874, 560, 876, 840, 878, 879, 100, 881, + 174, 684, 97, 60, 61, 107, -1, 100, 616, -1, + 326, 893, 894, 895, 107, 19, 20, 21, -1, 121, + -1, 123, 124, 125, 126, -1, -1, 129, 121, 131, + 123, 124, 125, 126, -1, -1, 138, -1, 131, -1, + -1, -1, -1, 100, -1, 138, -1, -1, -1, -1, + 107, -1, -1, -1, -1, -1, 60, 61, 19, 20, + 21, -1, -1, -1, 121, -1, 123, 124, 125, 126, + -1, -1, 513, -1, 131, -1, -1, -1, -1, 520, + 521, 138, 523, 524, 525, 526, -1, 528, -1, 530, + 531, 532, 533, -1, 535, -1, 100, -1, -1, 60, + 61, -1, -1, 107, -1, -1, 547, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 121, -1, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, 138, -1, -1, -1, -1, 100, + -1, -1, -1, -1, -1, -1, 107, -1, 589, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 861, - -1, -1, -1, -1, 866, -1, -1, -1, -1, 871, - -1, 873, -1, 875, -1, 877, 878, -1, 880, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 892, 893, 894, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4, 5, -1, -1, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, -1, -1, 498, - 499, 500, 501, 502, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 59, -1, - -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, - 101, 102, 103, 104, 105, 106, -1, -1, 109, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, -1, -1, 126, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, - 619, -1, 621, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 631, -1, 633, -1, -1, 636, -1, 638, - -1, -1, 641, -1, 643, -1, -1, 646, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 0, 1, -1, - -1, 4, 5, -1, -1, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, -1, -1, -1, -1, -1, - 679, 680, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, 58, 59, -1, -1, 62, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, -1, 101, 102, - 103, 104, 105, 106, 4, 5, 109, -1, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, - 123, 124, 125, 126, -1, 25, 26, 27, 28, 29, + -1, -1, 123, 124, 125, 126, -1, -1, 609, -1, + 131, -1, -1, -1, -1, -1, -1, 138, -1, -1, + -1, -1, -1, -1, 4, 5, -1, -1, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 639, -1, + -1, 642, -1, -1, 645, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, - -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, + -1, 682, 62, -1, -1, -1, -1, -1, -1, 690, + 691, -1, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, -1, 126, -1, 128, 4, - 5, -1, -1, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, -1, 126, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 777, 778, 779, 780, + 781, 782, 0, 1, 785, -1, 4, 5, 789, -1, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, -1, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, -1, 101, 102, 103, 104, 105, 106, 4, + 5, 109, -1, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, -1, -1, 123, 124, 125, 126, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, - 105, 106, 4, 5, 109, -1, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, -1, -1, 123, -1, - -1, 126, -1, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 59, -1, -1, - 62, -1, -1, -1, 19, 20, 21, -1, -1, -1, - -1, -1, -1, 19, 20, 21, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, -1, 101, - 102, 103, 104, 105, 106, 60, 61, 109, 19, 20, - 21, -1, -1, -1, 60, 61, -1, -1, -1, -1, - -1, 123, -1, -1, 126, -1, -1, -1, -1, -1, + 105, 106, -1, -1, 109, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + -1, 126, -1, 128, 4, 5, -1, -1, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, + -1, -1, -1, -1, -1, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + -1, 101, 102, 103, 104, 105, 106, 4, 5, 109, + -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, -1, -1, 123, -1, -1, 126, -1, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, -1, -1, -1, 60, - 61, -1, 107, -1, 100, -1, -1, -1, -1, -1, - -1, 107, -1, -1, -1, -1, 121, -1, 123, 124, - 125, 126, -1, -1, -1, 121, 131, 123, 124, 125, - 126, -1, -1, 138, -1, 131, -1, -1, -1, 100, - -1, -1, 138, -1, -1, -1, 107, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 121, -1, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, 138 + -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, + -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, -1, 126 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1730,28 +1723,28 @@ static const grib_yytype_uint8 grib_yystos[] = 124, 135, 123, 169, 162, 124, 162, 124, 135, 123, 169, 162, 164, 123, 123, 159, 160, 128, 152, 136, 127, 136, 124, 124, 125, 125, 125, 132, 162, 131, - 131, 155, 108, 172, 173, 135, 132, 132, 132, 132, - 132, 125, 129, 187, 161, 162, 135, 135, 133, 136, - 190, 136, 136, 153, 162, 153, 162, 136, 162, 162, - 162, 162, 136, 162, 153, 162, 153, 162, 162, 153, - 162, 153, 187, 161, 162, 153, 161, 153, 162, 161, - 153, 125, 126, 162, 127, 169, 127, 132, 136, 127, - 127, 169, 127, 132, 136, 133, 133, 152, 136, 159, - 128, 124, 132, 132, 127, 132, 127, 127, 153, 153, - 161, 154, 110, 136, 173, 150, 162, 162, 162, 161, - 161, 149, 128, 162, 6, 6, 130, 130, 130, 130, - 130, 132, 80, 162, 132, 162, 132, 162, 132, 123, - 136, 124, 135, 162, 123, 123, 136, 124, 135, 162, - 187, 187, 6, 152, 125, 125, 125, 132, 132, 162, - 137, 137, 136, 162, 162, 130, 135, 135, 161, 161, - 161, 161, 161, 161, 131, 161, 162, 161, 127, 132, - 162, 127, 169, 127, 127, 132, 162, 127, 169, 135, - 132, 132, 132, 150, 136, 150, 128, 150, 150, 162, - 162, 162, 162, 162, 162, 123, 162, 162, 123, 162, - 123, 136, 123, 123, 162, 123, 136, 160, 136, 136, - 136, 132, 127, 132, 127, 132, 162, 132, 132, 127, - 132, 162, 136, 162, 123, 162, 123, 162, 162, 162, - 123, 162, 132, 132, 132, 162, 162, 162 + 131, 161, 155, 108, 172, 173, 135, 132, 132, 132, + 132, 132, 125, 129, 187, 161, 162, 135, 135, 133, + 136, 190, 136, 136, 153, 162, 153, 162, 136, 162, + 162, 162, 162, 136, 162, 153, 162, 153, 162, 162, + 153, 162, 153, 187, 161, 162, 153, 161, 153, 162, + 161, 153, 125, 126, 162, 127, 169, 127, 132, 136, + 127, 127, 169, 127, 132, 136, 133, 133, 152, 136, + 159, 128, 124, 132, 132, 127, 132, 127, 127, 153, + 153, 161, 154, 110, 136, 173, 150, 162, 162, 162, + 161, 161, 149, 128, 162, 6, 6, 130, 130, 130, + 130, 130, 132, 80, 162, 132, 162, 132, 162, 132, + 123, 136, 124, 135, 162, 123, 123, 136, 124, 135, + 162, 187, 187, 6, 152, 125, 125, 125, 132, 132, + 162, 137, 137, 136, 162, 162, 130, 135, 135, 161, + 161, 161, 161, 161, 161, 131, 161, 162, 161, 127, + 132, 162, 127, 169, 127, 127, 132, 162, 127, 169, + 135, 132, 132, 132, 150, 136, 150, 128, 150, 150, + 162, 162, 162, 162, 162, 162, 123, 162, 162, 123, + 162, 123, 136, 123, 123, 162, 123, 136, 160, 136, + 136, 136, 132, 127, 132, 127, 132, 162, 132, 132, + 127, 132, 162, 136, 162, 123, 162, 123, 162, 162, + 162, 123, 162, 132, 132, 132, 162, 162, 162 }; #define grib_yyerrok (grib_yyerrstatus = 0) @@ -3031,118 +3024,124 @@ grib_yyreduce: case 96: /* Line 1792 of yacc.c */ #line 504 "griby.y" - { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(5) - (8)].str),"g1_message_length",(grib_yyvsp[(3) - (8)].lval),(grib_yyvsp[(7) - (8)].explist),NULL,0,NULL,NULL);free((grib_yyvsp[(5) - (8)].str)); } + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(5) - (6)].str),"section_length",(grib_yyvsp[(3) - (6)].lval),NULL,(grib_yyvsp[(6) - (6)].explist),0,NULL,NULL);free((grib_yyvsp[(5) - (6)].str)); } break; case 97: /* Line 1792 of yacc.c */ #line 507 "griby.y" - { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(5) - (8)].str),"g1_section4_length",(grib_yyvsp[(3) - (8)].lval),(grib_yyvsp[(7) - (8)].explist),NULL,0,NULL,NULL);free((grib_yyvsp[(5) - (8)].str)); } + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(5) - (8)].str),"g1_message_length",(grib_yyvsp[(3) - (8)].lval),(grib_yyvsp[(7) - (8)].explist),NULL,0,NULL,NULL);free((grib_yyvsp[(5) - (8)].str)); } break; case 98: /* Line 1792 of yacc.c */ #line 510 "griby.y" - { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (3)].str),"ksec",0,(grib_yyvsp[(3) - (3)].explist),NULL,0,NULL,NULL);free((grib_yyvsp[(2) - (3)].str)); } + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(5) - (8)].str),"g1_section4_length",(grib_yyvsp[(3) - (8)].lval),(grib_yyvsp[(7) - (8)].explist),NULL,0,NULL,NULL);free((grib_yyvsp[(5) - (8)].str)); } break; case 99: /* Line 1792 of yacc.c */ #line 513 "griby.y" - { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (5)].str),"pad",0,(grib_yyvsp[(4) - (5)].explist),0,0,NULL,NULL); free((grib_yyvsp[(2) - (5)].str)); } + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (3)].str),"ksec",0,(grib_yyvsp[(3) - (3)].explist),NULL,0,NULL,NULL);free((grib_yyvsp[(2) - (3)].str)); } break; case 100: /* Line 1792 of yacc.c */ #line 516 "griby.y" - { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (5)].str),"padto",0,(grib_yyvsp[(4) - (5)].explist),0,0,NULL,NULL); free((grib_yyvsp[(2) - (5)].str)); } + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (5)].str),"pad",0,(grib_yyvsp[(4) - (5)].explist),0,0,NULL,NULL); free((grib_yyvsp[(2) - (5)].str)); } break; case 101: /* Line 1792 of yacc.c */ #line 519 "griby.y" - { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (5)].str),"padtoeven",0,(grib_yyvsp[(4) - (5)].explist),0,0,NULL,NULL); free((grib_yyvsp[(2) - (5)].str)); } + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (5)].str),"padto",0,(grib_yyvsp[(4) - (5)].explist),0,0,NULL,NULL); free((grib_yyvsp[(2) - (5)].str)); } break; case 102: /* Line 1792 of yacc.c */ #line 522 "griby.y" - { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (5)].str),"padtomultiple",0,(grib_yyvsp[(4) - (5)].explist),0,0,NULL,NULL); free((grib_yyvsp[(2) - (5)].str)); } + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (5)].str),"padtoeven",0,(grib_yyvsp[(4) - (5)].explist),0,0,NULL,NULL); free((grib_yyvsp[(2) - (5)].str)); } break; case 103: /* Line 1792 of yacc.c */ #line 525 "griby.y" - { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(5) - (6)].str),"message",(grib_yyvsp[(3) - (6)].lval),0,0,(grib_yyvsp[(6) - (6)].lval),NULL,NULL); free((grib_yyvsp[(5) - (6)].str)); } + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (5)].str),"padtomultiple",0,(grib_yyvsp[(4) - (5)].explist),0,0,NULL,NULL); free((grib_yyvsp[(2) - (5)].str)); } break; case 104: /* Line 1792 of yacc.c */ #line 528 "griby.y" - { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (3)].str),"message_copy",0,0,0,(grib_yyvsp[(3) - (3)].lval),NULL,NULL); free((grib_yyvsp[(2) - (3)].str)); } + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(5) - (6)].str),"message",(grib_yyvsp[(3) - (6)].lval),0,0,(grib_yyvsp[(6) - (6)].lval),NULL,NULL); free((grib_yyvsp[(5) - (6)].str)); } break; case 105: /* Line 1792 of yacc.c */ #line 531 "griby.y" - { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (3)].str),"section_padding",0,0,0,(grib_yyvsp[(3) - (3)].lval),NULL,NULL); free((grib_yyvsp[(2) - (3)].str)); } + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (3)].str),"message_copy",0,0,0,(grib_yyvsp[(3) - (3)].lval),NULL,NULL); free((grib_yyvsp[(2) - (3)].str)); } break; case 106: /* Line 1792 of yacc.c */ -#line 533 "griby.y" - { (grib_yyval.act) = grib_action_create_template(grib_parser_context,0,(grib_yyvsp[(2) - (3)].str),(grib_yyvsp[(3) - (3)].str)); free((grib_yyvsp[(2) - (3)].str)); free((grib_yyvsp[(3) - (3)].str));} +#line 534 "griby.y" + { (grib_yyval.act) = grib_action_create_gen(grib_parser_context,(grib_yyvsp[(2) - (3)].str),"section_padding",0,0,0,(grib_yyvsp[(3) - (3)].lval),NULL,NULL); free((grib_yyvsp[(2) - (3)].str)); } break; case 107: /* Line 1792 of yacc.c */ -#line 535 "griby.y" - { (grib_yyval.act) = grib_action_create_template(grib_parser_context,1,(grib_yyvsp[(2) - (3)].str),(grib_yyvsp[(3) - (3)].str)); free((grib_yyvsp[(2) - (3)].str)); free((grib_yyvsp[(3) - (3)].str));} +#line 536 "griby.y" + { (grib_yyval.act) = grib_action_create_template(grib_parser_context,0,(grib_yyvsp[(2) - (3)].str),(grib_yyvsp[(3) - (3)].str)); free((grib_yyvsp[(2) - (3)].str)); free((grib_yyvsp[(3) - (3)].str));} break; case 108: /* Line 1792 of yacc.c */ #line 538 "griby.y" - { (grib_yyval.act) = grib_action_create_alias(grib_parser_context,(grib_yyvsp[(2) - (5)].str),(grib_yyvsp[(4) - (5)].str),NULL,(grib_yyvsp[(5) - (5)].lval)); free((grib_yyvsp[(2) - (5)].str)); free((grib_yyvsp[(4) - (5)].str)); } + { (grib_yyval.act) = grib_action_create_template(grib_parser_context,1,(grib_yyvsp[(2) - (3)].str),(grib_yyvsp[(3) - (3)].str)); free((grib_yyvsp[(2) - (3)].str)); free((grib_yyvsp[(3) - (3)].str));} break; case 109: /* Line 1792 of yacc.c */ #line 541 "griby.y" - { (grib_yyval.act) = grib_action_create_alias(grib_parser_context,(grib_yyvsp[(2) - (2)].str),NULL,NULL,0); free((grib_yyvsp[(2) - (2)].str)); } + { (grib_yyval.act) = grib_action_create_alias(grib_parser_context,(grib_yyvsp[(2) - (5)].str),(grib_yyvsp[(4) - (5)].str),NULL,(grib_yyvsp[(5) - (5)].lval)); free((grib_yyvsp[(2) - (5)].str)); free((grib_yyvsp[(4) - (5)].str)); } break; case 110: /* Line 1792 of yacc.c */ #line 544 "griby.y" + { (grib_yyval.act) = grib_action_create_alias(grib_parser_context,(grib_yyvsp[(2) - (2)].str),NULL,NULL,0); free((grib_yyvsp[(2) - (2)].str)); } + break; + + case 111: +/* Line 1792 of yacc.c */ +#line 547 "griby.y" { (grib_yyval.act) = grib_action_create_alias(grib_parser_context,(grib_yyvsp[(4) - (7)].str),(grib_yyvsp[(6) - (7)].str),(grib_yyvsp[(2) - (7)].str),(grib_yyvsp[(7) - (7)].lval)); free((grib_yyvsp[(2) - (7)].str)); free((grib_yyvsp[(4) - (7)].str)); free((grib_yyvsp[(6) - (7)].str)); } break; - case 111: + case 112: /* Line 1792 of yacc.c */ -#line 548 "griby.y" +#line 551 "griby.y" { (grib_yyval.act) = grib_action_create_alias(grib_parser_context,(grib_yyvsp[(4) - (4)].str),NULL,(grib_yyvsp[(2) - (4)].str),0); free((grib_yyvsp[(2) - (4)].str)); free((grib_yyvsp[(4) - (4)].str)); } break; - case 112: -/* Line 1792 of yacc.c */ -#line 552 "griby.y" - { (grib_yyval.act) = grib_action_create_meta(grib_parser_context,(grib_yyvsp[(2) - (8)].str),(grib_yyvsp[(3) - (8)].str),(grib_yyvsp[(5) - (8)].explist),(grib_yyvsp[(7) - (8)].explist),(grib_yyvsp[(8) - (8)].lval),NULL); free((grib_yyvsp[(2) - (8)].str));free((grib_yyvsp[(3) - (8)].str));} - break; - case 113: /* Line 1792 of yacc.c */ #line 555 "griby.y" - { (grib_yyval.act) = grib_action_create_meta(grib_parser_context,(grib_yyvsp[(4) - (10)].str),(grib_yyvsp[(5) - (10)].str),(grib_yyvsp[(7) - (10)].explist),(grib_yyvsp[(9) - (10)].explist),(grib_yyvsp[(10) - (10)].lval),(grib_yyvsp[(2) - (10)].str)); free((grib_yyvsp[(4) - (10)].str));free((grib_yyvsp[(5) - (10)].str));free((grib_yyvsp[(2) - (10)].str));} + { (grib_yyval.act) = grib_action_create_meta(grib_parser_context,(grib_yyvsp[(2) - (8)].str),(grib_yyvsp[(3) - (8)].str),(grib_yyvsp[(5) - (8)].explist),(grib_yyvsp[(7) - (8)].explist),(grib_yyvsp[(8) - (8)].lval),NULL); free((grib_yyvsp[(2) - (8)].str));free((grib_yyvsp[(3) - (8)].str));} break; case 114: /* Line 1792 of yacc.c */ #line 558 "griby.y" + { (grib_yyval.act) = grib_action_create_meta(grib_parser_context,(grib_yyvsp[(4) - (10)].str),(grib_yyvsp[(5) - (10)].str),(grib_yyvsp[(7) - (10)].explist),(grib_yyvsp[(9) - (10)].explist),(grib_yyvsp[(10) - (10)].lval),(grib_yyvsp[(2) - (10)].str)); free((grib_yyvsp[(4) - (10)].str));free((grib_yyvsp[(5) - (10)].str));free((grib_yyvsp[(2) - (10)].str));} + break; + + case 115: +/* Line 1792 of yacc.c */ +#line 561 "griby.y" { grib_arguments* a = grib_arguments_new( grib_parser_context, @@ -3156,9 +3155,9 @@ grib_yyreduce: } break; - case 115: + case 116: /* Line 1792 of yacc.c */ -#line 570 "griby.y" +#line 573 "griby.y" { grib_arguments* a = grib_arguments_new( grib_parser_context, @@ -3172,9 +3171,9 @@ grib_yyreduce: } break; - case 116: + case 117: /* Line 1792 of yacc.c */ -#line 582 "griby.y" +#line 585 "griby.y" { grib_arguments* a = grib_arguments_new( grib_parser_context, @@ -3188,825 +3187,825 @@ grib_yyreduce: } break; - case 117: -/* Line 1792 of yacc.c */ -#line 594 "griby.y" - { (grib_yyval.act) = grib_action_create_put(grib_parser_context,(grib_yyvsp[(2) - (5)].str),(grib_yyvsp[(4) - (5)].explist));free((grib_yyvsp[(2) - (5)].str));} - break; - case 118: /* Line 1792 of yacc.c */ #line 597 "griby.y" - { (grib_yyval.act) = grib_action_create_remove(grib_parser_context,(grib_yyvsp[(2) - (2)].explist));} + { (grib_yyval.act) = grib_action_create_put(grib_parser_context,(grib_yyvsp[(2) - (5)].str),(grib_yyvsp[(4) - (5)].explist));free((grib_yyvsp[(2) - (5)].str));} break; case 119: /* Line 1792 of yacc.c */ -#line 599 "griby.y" - { (grib_yyval.act) = grib_action_create_rename(grib_parser_context,(grib_yyvsp[(3) - (6)].str),(grib_yyvsp[(5) - (6)].str));free((grib_yyvsp[(3) - (6)].str));free((grib_yyvsp[(5) - (6)].str));} +#line 600 "griby.y" + { (grib_yyval.act) = grib_action_create_remove(grib_parser_context,(grib_yyvsp[(2) - (2)].explist));} break; case 120: /* Line 1792 of yacc.c */ #line 602 "griby.y" - { (grib_yyval.act) = grib_action_create_assert(grib_parser_context,(grib_yyvsp[(3) - (4)].exp));} + { (grib_yyval.act) = grib_action_create_rename(grib_parser_context,(grib_yyvsp[(3) - (6)].str),(grib_yyvsp[(5) - (6)].str));free((grib_yyvsp[(3) - (6)].str));free((grib_yyvsp[(5) - (6)].str));} break; case 121: /* Line 1792 of yacc.c */ #line 605 "griby.y" - { (grib_yyval.act) = grib_action_create_modify(grib_parser_context,(grib_yyvsp[(2) - (3)].str),(grib_yyvsp[(3) - (3)].lval)); free((grib_yyvsp[(2) - (3)].str));} + { (grib_yyval.act) = grib_action_create_assert(grib_parser_context,(grib_yyvsp[(3) - (4)].exp));} break; case 122: /* Line 1792 of yacc.c */ -#line 607 "griby.y" - { (grib_yyval.act) = grib_action_create_set_missing(grib_parser_context,(grib_yyvsp[(2) - (4)].str)); free((grib_yyvsp[(2) - (4)].str)); } +#line 608 "griby.y" + { (grib_yyval.act) = grib_action_create_modify(grib_parser_context,(grib_yyvsp[(2) - (3)].str),(grib_yyvsp[(3) - (3)].lval)); free((grib_yyvsp[(2) - (3)].str));} break; case 123: /* Line 1792 of yacc.c */ -#line 608 "griby.y" - { (grib_yyval.act) = grib_action_create_set(grib_parser_context,(grib_yyvsp[(2) - (4)].str),(grib_yyvsp[(4) - (4)].exp),0); free((grib_yyvsp[(2) - (4)].str)); } +#line 610 "griby.y" + { (grib_yyval.act) = grib_action_create_set_missing(grib_parser_context,(grib_yyvsp[(2) - (4)].str)); free((grib_yyvsp[(2) - (4)].str)); } break; case 124: /* Line 1792 of yacc.c */ -#line 609 "griby.y" - { (grib_yyval.act) = grib_action_create_set_darray(grib_parser_context,(grib_yyvsp[(2) - (6)].str),(grib_yyvsp[(5) - (6)].dvalue)); free((grib_yyvsp[(2) - (6)].str)); } +#line 611 "griby.y" + { (grib_yyval.act) = grib_action_create_set(grib_parser_context,(grib_yyvsp[(2) - (4)].str),(grib_yyvsp[(4) - (4)].exp),0); free((grib_yyvsp[(2) - (4)].str)); } break; case 125: /* Line 1792 of yacc.c */ -#line 610 "griby.y" - { (grib_yyval.act) = grib_action_create_set_sarray(grib_parser_context,(grib_yyvsp[(2) - (6)].str),(grib_yyvsp[(5) - (6)].svalue)); free((grib_yyvsp[(2) - (6)].str)); } +#line 612 "griby.y" + { (grib_yyval.act) = grib_action_create_set_darray(grib_parser_context,(grib_yyvsp[(2) - (6)].str),(grib_yyvsp[(5) - (6)].dvalue)); free((grib_yyvsp[(2) - (6)].str)); } break; case 126: /* Line 1792 of yacc.c */ -#line 612 "griby.y" - { (grib_yyval.act) = grib_action_create_set(grib_parser_context,(grib_yyvsp[(2) - (4)].str),(grib_yyvsp[(4) - (4)].exp),1); free((grib_yyvsp[(2) - (4)].str)); } +#line 613 "griby.y" + { (grib_yyval.act) = grib_action_create_set_sarray(grib_parser_context,(grib_yyvsp[(2) - (6)].str),(grib_yyvsp[(5) - (6)].svalue)); free((grib_yyvsp[(2) - (6)].str)); } break; case 127: /* Line 1792 of yacc.c */ #line 615 "griby.y" - { (grib_yyval.act) = grib_action_create_write(grib_parser_context,(grib_yyvsp[(2) - (2)].str),0,0); free((grib_yyvsp[(2) - (2)].str));} + { (grib_yyval.act) = grib_action_create_set(grib_parser_context,(grib_yyvsp[(2) - (4)].str),(grib_yyvsp[(4) - (4)].exp),1); free((grib_yyvsp[(2) - (4)].str)); } break; case 128: /* Line 1792 of yacc.c */ -#line 616 "griby.y" - { (grib_yyval.act) = grib_action_create_write(grib_parser_context,"",0,0); } +#line 618 "griby.y" + { (grib_yyval.act) = grib_action_create_write(grib_parser_context,(grib_yyvsp[(2) - (2)].str),0,0); free((grib_yyvsp[(2) - (2)].str));} break; case 129: /* Line 1792 of yacc.c */ -#line 617 "griby.y" - { (grib_yyval.act) = grib_action_create_write(grib_parser_context,(grib_yyvsp[(5) - (5)].str),0,(grib_yyvsp[(3) - (5)].lval)); free((grib_yyvsp[(5) - (5)].str));} +#line 619 "griby.y" + { (grib_yyval.act) = grib_action_create_write(grib_parser_context,"",0,0); } break; case 130: /* Line 1792 of yacc.c */ -#line 618 "griby.y" - { (grib_yyval.act) = grib_action_create_write(grib_parser_context,"",0,(grib_yyvsp[(3) - (4)].lval)); } +#line 620 "griby.y" + { (grib_yyval.act) = grib_action_create_write(grib_parser_context,(grib_yyvsp[(5) - (5)].str),0,(grib_yyvsp[(3) - (5)].lval)); free((grib_yyvsp[(5) - (5)].str));} break; case 131: /* Line 1792 of yacc.c */ -#line 619 "griby.y" - { (grib_yyval.act) = grib_action_create_write(grib_parser_context,(grib_yyvsp[(2) - (2)].str),1,0); free((grib_yyvsp[(2) - (2)].str));} +#line 621 "griby.y" + { (grib_yyval.act) = grib_action_create_write(grib_parser_context,"",0,(grib_yyvsp[(3) - (4)].lval)); } break; case 132: /* Line 1792 of yacc.c */ -#line 620 "griby.y" - { (grib_yyval.act) = grib_action_create_write(grib_parser_context,"",1,0); } +#line 622 "griby.y" + { (grib_yyval.act) = grib_action_create_write(grib_parser_context,(grib_yyvsp[(2) - (2)].str),1,0); free((grib_yyvsp[(2) - (2)].str));} break; case 133: /* Line 1792 of yacc.c */ -#line 621 "griby.y" - { (grib_yyval.act) = grib_action_create_write(grib_parser_context,(grib_yyvsp[(5) - (5)].str),1,(grib_yyvsp[(3) - (5)].lval)); free((grib_yyvsp[(5) - (5)].str));} +#line 623 "griby.y" + { (grib_yyval.act) = grib_action_create_write(grib_parser_context,"",1,0); } break; case 134: /* Line 1792 of yacc.c */ -#line 622 "griby.y" - { (grib_yyval.act) = grib_action_create_write(grib_parser_context,"",1,(grib_yyvsp[(3) - (4)].lval)); } +#line 624 "griby.y" + { (grib_yyval.act) = grib_action_create_write(grib_parser_context,(grib_yyvsp[(5) - (5)].str),1,(grib_yyvsp[(3) - (5)].lval)); free((grib_yyvsp[(5) - (5)].str));} break; case 135: /* Line 1792 of yacc.c */ -#line 624 "griby.y" - { (grib_yyval.act) = grib_action_create_close(grib_parser_context,(grib_yyvsp[(3) - (4)].str)); free((grib_yyvsp[(3) - (4)].str));} +#line 625 "griby.y" + { (grib_yyval.act) = grib_action_create_write(grib_parser_context,"",1,(grib_yyvsp[(3) - (4)].lval)); } break; case 136: /* Line 1792 of yacc.c */ -#line 625 "griby.y" - { (grib_yyval.act) = grib_action_create_print(grib_parser_context,(grib_yyvsp[(2) - (2)].str),0); free((grib_yyvsp[(2) - (2)].str)); } +#line 627 "griby.y" + { (grib_yyval.act) = grib_action_create_close(grib_parser_context,(grib_yyvsp[(3) - (4)].str)); free((grib_yyvsp[(3) - (4)].str));} break; case 137: /* Line 1792 of yacc.c */ -#line 626 "griby.y" - { (grib_yyval.act) = grib_action_create_print(grib_parser_context,(grib_yyvsp[(5) - (5)].str),(grib_yyvsp[(3) - (5)].str)); free((grib_yyvsp[(5) - (5)].str)); free((grib_yyvsp[(3) - (5)].str));} +#line 628 "griby.y" + { (grib_yyval.act) = grib_action_create_print(grib_parser_context,(grib_yyvsp[(2) - (2)].str),0); free((grib_yyvsp[(2) - (2)].str)); } break; case 138: /* Line 1792 of yacc.c */ -#line 627 "griby.y" +#line 629 "griby.y" { (grib_yyval.act) = grib_action_create_print(grib_parser_context,(grib_yyvsp[(5) - (5)].str),(grib_yyvsp[(3) - (5)].str)); free((grib_yyvsp[(5) - (5)].str)); free((grib_yyvsp[(3) - (5)].str));} break; case 139: /* Line 1792 of yacc.c */ -#line 628 "griby.y" - { (grib_yyval.act) = grib_action_create_print(grib_parser_context,"",0); } +#line 630 "griby.y" + { (grib_yyval.act) = grib_action_create_print(grib_parser_context,(grib_yyvsp[(5) - (5)].str),(grib_yyvsp[(3) - (5)].str)); free((grib_yyvsp[(5) - (5)].str)); free((grib_yyvsp[(3) - (5)].str));} break; case 140: /* Line 1792 of yacc.c */ -#line 632 "griby.y" - { (grib_yyval.act) = grib_action_create_if(grib_parser_context,(grib_yyvsp[(3) - (7)].exp),(grib_yyvsp[(6) - (7)].act),0,0); } +#line 631 "griby.y" + { (grib_yyval.act) = grib_action_create_print(grib_parser_context,"",0); } break; case 141: /* Line 1792 of yacc.c */ -#line 633 "griby.y" - { (grib_yyval.act) = grib_action_create_if(grib_parser_context,(grib_yyvsp[(3) - (11)].exp),(grib_yyvsp[(6) - (11)].act),(grib_yyvsp[(10) - (11)].act),0); } +#line 635 "griby.y" + { (grib_yyval.act) = grib_action_create_if(grib_parser_context,(grib_yyvsp[(3) - (7)].exp),(grib_yyvsp[(6) - (7)].act),0,0); } break; case 142: /* Line 1792 of yacc.c */ -#line 634 "griby.y" - { (grib_yyval.act) = grib_action_create_if(grib_parser_context,(grib_yyvsp[(3) - (7)].exp),(grib_yyvsp[(6) - (7)].act),0,1); } +#line 636 "griby.y" + { (grib_yyval.act) = grib_action_create_if(grib_parser_context,(grib_yyvsp[(3) - (11)].exp),(grib_yyvsp[(6) - (11)].act),(grib_yyvsp[(10) - (11)].act),0); } break; case 143: /* Line 1792 of yacc.c */ -#line 635 "griby.y" - { (grib_yyval.act) = grib_action_create_if(grib_parser_context,(grib_yyvsp[(3) - (11)].exp),(grib_yyvsp[(6) - (11)].act),(grib_yyvsp[(10) - (11)].act),1); } +#line 637 "griby.y" + { (grib_yyval.act) = grib_action_create_if(grib_parser_context,(grib_yyvsp[(3) - (7)].exp),(grib_yyvsp[(6) - (7)].act),0,1); } break; case 144: /* Line 1792 of yacc.c */ -#line 639 "griby.y" - { (grib_yyval.act) = grib_action_create_when(grib_parser_context,(grib_yyvsp[(3) - (6)].exp),(grib_yyvsp[(5) - (6)].act),NULL); } +#line 638 "griby.y" + { (grib_yyval.act) = grib_action_create_if(grib_parser_context,(grib_yyvsp[(3) - (11)].exp),(grib_yyvsp[(6) - (11)].act),(grib_yyvsp[(10) - (11)].act),1); } break; case 145: /* Line 1792 of yacc.c */ -#line 640 "griby.y" - { (grib_yyval.act) = grib_action_create_when(grib_parser_context,(grib_yyvsp[(3) - (7)].exp),(grib_yyvsp[(6) - (7)].act),NULL); } +#line 642 "griby.y" + { (grib_yyval.act) = grib_action_create_when(grib_parser_context,(grib_yyvsp[(3) - (6)].exp),(grib_yyvsp[(5) - (6)].act),NULL); } break; case 146: /* Line 1792 of yacc.c */ -#line 641 "griby.y" - { (grib_yyval.act) = grib_action_create_when(grib_parser_context,(grib_yyvsp[(3) - (11)].exp),(grib_yyvsp[(6) - (11)].act),(grib_yyvsp[(10) - (11)].act)); } +#line 643 "griby.y" + { (grib_yyval.act) = grib_action_create_when(grib_parser_context,(grib_yyvsp[(3) - (7)].exp),(grib_yyvsp[(6) - (7)].act),NULL); } break; case 147: /* Line 1792 of yacc.c */ #line 644 "griby.y" - { (grib_yyval.act) = grib_action_create_set(grib_parser_context,(grib_yyvsp[(2) - (4)].str),(grib_yyvsp[(4) - (4)].exp),0); free((grib_yyvsp[(2) - (4)].str)); } + { (grib_yyval.act) = grib_action_create_when(grib_parser_context,(grib_yyvsp[(3) - (11)].exp),(grib_yyvsp[(6) - (11)].act),(grib_yyvsp[(10) - (11)].act)); } break; case 148: /* Line 1792 of yacc.c */ -#line 645 "griby.y" - { (grib_yyval.act) = grib_action_create_set(grib_parser_context,(grib_yyvsp[(2) - (4)].str),(grib_yyvsp[(4) - (4)].exp),1); free((grib_yyvsp[(2) - (4)].str)); } +#line 647 "griby.y" + { (grib_yyval.act) = grib_action_create_set(grib_parser_context,(grib_yyvsp[(2) - (4)].str),(grib_yyvsp[(4) - (4)].exp),0); free((grib_yyvsp[(2) - (4)].str)); } break; - case 150: + case 149: /* Line 1792 of yacc.c */ -#line 649 "griby.y" - { (grib_yyvsp[(1) - (3)].act)->next = (grib_yyvsp[(2) - (3)].act); (grib_yyval.act) = (grib_yyvsp[(1) - (3)].act); } +#line 648 "griby.y" + { (grib_yyval.act) = grib_action_create_set(grib_parser_context,(grib_yyvsp[(2) - (4)].str),(grib_yyvsp[(4) - (4)].exp),1); free((grib_yyvsp[(2) - (4)].str)); } break; case 151: /* Line 1792 of yacc.c */ -#line 653 "griby.y" - { (grib_yyval.explist) = NULL ;} +#line 652 "griby.y" + { (grib_yyvsp[(1) - (3)].act)->next = (grib_yyvsp[(2) - (3)].act); (grib_yyval.act) = (grib_yyvsp[(1) - (3)].act); } break; case 152: /* Line 1792 of yacc.c */ -#line 654 "griby.y" - { (grib_yyval.explist) = (grib_yyvsp[(2) - (2)].explist) ;} +#line 656 "griby.y" + { (grib_yyval.explist) = NULL ;} break; case 153: /* Line 1792 of yacc.c */ #line 657 "griby.y" - { (grib_yyval.lval) = 0 ; } + { (grib_yyval.explist) = (grib_yyvsp[(2) - (2)].explist) ;} break; case 154: /* Line 1792 of yacc.c */ -#line 658 "griby.y" - { (grib_yyval.lval) = (grib_yyvsp[(2) - (2)].lval); } +#line 660 "griby.y" + { (grib_yyval.lval) = 0 ; } break; - case 156: + case 155: /* Line 1792 of yacc.c */ -#line 662 "griby.y" - { (grib_yyval.lval) = (grib_yyvsp[(1) - (3)].lval) | (grib_yyvsp[(3) - (3)].lval); } +#line 661 "griby.y" + { (grib_yyval.lval) = (grib_yyvsp[(2) - (2)].lval); } break; case 157: /* Line 1792 of yacc.c */ #line 665 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_READ_ONLY; } + { (grib_yyval.lval) = (grib_yyvsp[(1) - (3)].lval) | (grib_yyvsp[(3) - (3)].lval); } break; case 158: /* Line 1792 of yacc.c */ -#line 666 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_LOWERCASE; } +#line 668 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_READ_ONLY; } break; case 159: /* Line 1792 of yacc.c */ -#line 667 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_DUMP; } +#line 669 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_LOWERCASE; } break; case 160: /* Line 1792 of yacc.c */ -#line 668 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_JSON; } +#line 670 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_DUMP; } break; case 161: /* Line 1792 of yacc.c */ -#line 669 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_XML; } +#line 671 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_JSON; } break; case 162: /* Line 1792 of yacc.c */ -#line 670 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_NO_COPY; } +#line 672 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_XML; } break; case 163: /* Line 1792 of yacc.c */ -#line 671 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_NO_FAIL; } +#line 673 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_NO_COPY; } break; case 164: /* Line 1792 of yacc.c */ -#line 672 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_HIDDEN; } +#line 674 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_NO_FAIL; } break; case 165: /* Line 1792 of yacc.c */ -#line 673 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_EDITION_SPECIFIC; } +#line 675 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_HIDDEN; } break; case 166: /* Line 1792 of yacc.c */ -#line 674 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_CAN_BE_MISSING; } +#line 676 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_EDITION_SPECIFIC; } break; case 167: /* Line 1792 of yacc.c */ -#line 675 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_CONSTRAINT; } +#line 677 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_CAN_BE_MISSING; } break; case 168: /* Line 1792 of yacc.c */ -#line 676 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_OVERRIDE; } +#line 678 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_CONSTRAINT; } break; case 169: /* Line 1792 of yacc.c */ -#line 677 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_COPY_OK; } +#line 679 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_OVERRIDE; } break; case 170: /* Line 1792 of yacc.c */ -#line 678 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_TRANSIENT; } +#line 680 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_COPY_OK; } break; case 171: /* Line 1792 of yacc.c */ -#line 679 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_STRING_TYPE; } +#line 681 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_TRANSIENT; } break; case 172: /* Line 1792 of yacc.c */ -#line 680 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_LONG_TYPE; } +#line 682 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_STRING_TYPE; } break; case 173: /* Line 1792 of yacc.c */ -#line 681 "griby.y" - { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_DOUBLE_TYPE; } +#line 683 "griby.y" + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_LONG_TYPE; } break; case 174: /* Line 1792 of yacc.c */ #line 684 "griby.y" - { (grib_yyval.act) = grib_action_create_list(grib_parser_context,(grib_yyvsp[(1) - (8)].str),(grib_yyvsp[(4) - (8)].exp),(grib_yyvsp[(7) - (8)].act)); free((grib_yyvsp[(1) - (8)].str)); } + { (grib_yyval.lval) = GRIB_ACCESSOR_FLAG_DOUBLE_TYPE; } break; case 175: /* Line 1792 of yacc.c */ #line 687 "griby.y" - { (grib_yyval.act) = grib_action_create_while(grib_parser_context,(grib_yyvsp[(3) - (7)].exp),(grib_yyvsp[(6) - (7)].act)); } + { (grib_yyval.act) = grib_action_create_list(grib_parser_context,(grib_yyvsp[(1) - (8)].str),(grib_yyvsp[(4) - (8)].exp),(grib_yyvsp[(7) - (8)].act)); free((grib_yyvsp[(1) - (8)].str)); } break; case 176: /* Line 1792 of yacc.c */ #line 690 "griby.y" - { (grib_yyval.act) = grib_action_create_trigger(grib_parser_context,(grib_yyvsp[(3) - (7)].explist),(grib_yyvsp[(6) - (7)].act)); } + { (grib_yyval.act) = grib_action_create_while(grib_parser_context,(grib_yyvsp[(3) - (7)].exp),(grib_yyvsp[(6) - (7)].act)); } break; case 177: /* Line 1792 of yacc.c */ #line 693 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (6)].str),(grib_yyvsp[(4) - (6)].concept_value),0,0,0,0,0,0,(grib_yyvsp[(6) - (6)].lval),0); free((grib_yyvsp[(2) - (6)].str)); } + { (grib_yyval.act) = grib_action_create_trigger(grib_parser_context,(grib_yyvsp[(3) - (7)].explist),(grib_yyvsp[(6) - (7)].act)); } break; case 178: /* Line 1792 of yacc.c */ -#line 694 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (9)].str),(grib_yyvsp[(7) - (9)].concept_value),0,0,(grib_yyvsp[(4) - (9)].str),0,0,0,(grib_yyvsp[(9) - (9)].lval),0); free((grib_yyvsp[(2) - (9)].str));free((grib_yyvsp[(4) - (9)].str)); } +#line 696 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (6)].str),(grib_yyvsp[(4) - (6)].concept_value),0,0,0,0,0,0,(grib_yyvsp[(6) - (6)].lval),0); free((grib_yyvsp[(2) - (6)].str)); } break; case 179: /* Line 1792 of yacc.c */ -#line 695 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (12)].str),0,(grib_yyvsp[(6) - (12)].str),0,(grib_yyvsp[(4) - (12)].str),(grib_yyvsp[(8) - (12)].str),(grib_yyvsp[(10) - (12)].str),0,(grib_yyvsp[(12) - (12)].lval),0); free((grib_yyvsp[(2) - (12)].str));free((grib_yyvsp[(6) - (12)].str));free((grib_yyvsp[(4) - (12)].str));free((grib_yyvsp[(8) - (12)].str));free((grib_yyvsp[(10) - (12)].str)); } +#line 697 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (9)].str),(grib_yyvsp[(7) - (9)].concept_value),0,0,(grib_yyvsp[(4) - (9)].str),0,0,0,(grib_yyvsp[(9) - (9)].lval),0); free((grib_yyvsp[(2) - (9)].str));free((grib_yyvsp[(4) - (9)].str)); } break; case 180: /* Line 1792 of yacc.c */ -#line 696 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (14)].str),0,(grib_yyvsp[(6) - (14)].str),0,(grib_yyvsp[(4) - (14)].str),(grib_yyvsp[(8) - (14)].str),(grib_yyvsp[(10) - (14)].str),(grib_yyvsp[(12) - (14)].str),(grib_yyvsp[(14) - (14)].lval),0); free((grib_yyvsp[(2) - (14)].str));free((grib_yyvsp[(6) - (14)].str));free((grib_yyvsp[(4) - (14)].str));free((grib_yyvsp[(8) - (14)].str));free((grib_yyvsp[(10) - (14)].str));free((grib_yyvsp[(12) - (14)].str)); } +#line 698 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (12)].str),0,(grib_yyvsp[(6) - (12)].str),0,(grib_yyvsp[(4) - (12)].str),(grib_yyvsp[(8) - (12)].str),(grib_yyvsp[(10) - (12)].str),0,(grib_yyvsp[(12) - (12)].lval),0); free((grib_yyvsp[(2) - (12)].str));free((grib_yyvsp[(6) - (12)].str));free((grib_yyvsp[(4) - (12)].str));free((grib_yyvsp[(8) - (12)].str));free((grib_yyvsp[(10) - (12)].str)); } break; case 181: /* Line 1792 of yacc.c */ -#line 697 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (10)].str),0,(grib_yyvsp[(6) - (10)].str),0,(grib_yyvsp[(4) - (10)].str),(grib_yyvsp[(8) - (10)].str),0,0,(grib_yyvsp[(10) - (10)].lval),0); free((grib_yyvsp[(2) - (10)].str));free((grib_yyvsp[(6) - (10)].str));free((grib_yyvsp[(4) - (10)].str));free((grib_yyvsp[(8) - (10)].str)); } +#line 699 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (14)].str),0,(grib_yyvsp[(6) - (14)].str),0,(grib_yyvsp[(4) - (14)].str),(grib_yyvsp[(8) - (14)].str),(grib_yyvsp[(10) - (14)].str),(grib_yyvsp[(12) - (14)].str),(grib_yyvsp[(14) - (14)].lval),0); free((grib_yyvsp[(2) - (14)].str));free((grib_yyvsp[(6) - (14)].str));free((grib_yyvsp[(4) - (14)].str));free((grib_yyvsp[(8) - (14)].str));free((grib_yyvsp[(10) - (14)].str));free((grib_yyvsp[(12) - (14)].str)); } break; case 182: /* Line 1792 of yacc.c */ -#line 698 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (14)].str),0,(grib_yyvsp[(8) - (14)].str),(grib_yyvsp[(2) - (14)].str),(grib_yyvsp[(6) - (14)].str),(grib_yyvsp[(10) - (14)].str),(grib_yyvsp[(12) - (14)].str),0,(grib_yyvsp[(14) - (14)].lval),0); free((grib_yyvsp[(4) - (14)].str));free((grib_yyvsp[(8) - (14)].str));free((grib_yyvsp[(6) - (14)].str));free((grib_yyvsp[(10) - (14)].str)); free((grib_yyvsp[(12) - (14)].str)); free((grib_yyvsp[(2) - (14)].str));} +#line 700 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (10)].str),0,(grib_yyvsp[(6) - (10)].str),0,(grib_yyvsp[(4) - (10)].str),(grib_yyvsp[(8) - (10)].str),0,0,(grib_yyvsp[(10) - (10)].lval),0); free((grib_yyvsp[(2) - (10)].str));free((grib_yyvsp[(6) - (10)].str));free((grib_yyvsp[(4) - (10)].str));free((grib_yyvsp[(8) - (10)].str)); } break; case 183: /* Line 1792 of yacc.c */ -#line 699 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (12)].str),0,(grib_yyvsp[(8) - (12)].str),(grib_yyvsp[(2) - (12)].str),(grib_yyvsp[(6) - (12)].str),(grib_yyvsp[(10) - (12)].str),0,0,(grib_yyvsp[(12) - (12)].lval),0); free((grib_yyvsp[(4) - (12)].str));free((grib_yyvsp[(8) - (12)].str));free((grib_yyvsp[(6) - (12)].str));free((grib_yyvsp[(10) - (12)].str)); free((grib_yyvsp[(2) - (12)].str));} +#line 701 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (14)].str),0,(grib_yyvsp[(8) - (14)].str),(grib_yyvsp[(2) - (14)].str),(grib_yyvsp[(6) - (14)].str),(grib_yyvsp[(10) - (14)].str),(grib_yyvsp[(12) - (14)].str),0,(grib_yyvsp[(14) - (14)].lval),0); free((grib_yyvsp[(4) - (14)].str));free((grib_yyvsp[(8) - (14)].str));free((grib_yyvsp[(6) - (14)].str));free((grib_yyvsp[(10) - (14)].str)); free((grib_yyvsp[(12) - (14)].str)); free((grib_yyvsp[(2) - (14)].str));} break; case 184: /* Line 1792 of yacc.c */ -#line 700 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (8)].str),(grib_yyvsp[(6) - (8)].concept_value),0,(grib_yyvsp[(2) - (8)].str),0,0,0,0,(grib_yyvsp[(8) - (8)].lval),0); free((grib_yyvsp[(2) - (8)].str));free((grib_yyvsp[(4) - (8)].str)); } +#line 702 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (12)].str),0,(grib_yyvsp[(8) - (12)].str),(grib_yyvsp[(2) - (12)].str),(grib_yyvsp[(6) - (12)].str),(grib_yyvsp[(10) - (12)].str),0,0,(grib_yyvsp[(12) - (12)].lval),0); free((grib_yyvsp[(4) - (12)].str));free((grib_yyvsp[(8) - (12)].str));free((grib_yyvsp[(6) - (12)].str));free((grib_yyvsp[(10) - (12)].str)); free((grib_yyvsp[(2) - (12)].str));} break; case 185: /* Line 1792 of yacc.c */ -#line 701 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (11)].str),(grib_yyvsp[(9) - (11)].concept_value),0,(grib_yyvsp[(2) - (11)].str),(grib_yyvsp[(6) - (11)].str),0,0,0,(grib_yyvsp[(11) - (11)].lval),0); free((grib_yyvsp[(2) - (11)].str));free((grib_yyvsp[(4) - (11)].str));free((grib_yyvsp[(6) - (11)].str)); } +#line 703 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (8)].str),(grib_yyvsp[(6) - (8)].concept_value),0,(grib_yyvsp[(2) - (8)].str),0,0,0,0,(grib_yyvsp[(8) - (8)].lval),0); free((grib_yyvsp[(2) - (8)].str));free((grib_yyvsp[(4) - (8)].str)); } break; case 186: /* Line 1792 of yacc.c */ -#line 702 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (6)].str),(grib_yyvsp[(4) - (6)].concept_value),0,0,0,0,0,0,(grib_yyvsp[(6) - (6)].lval),1); free((grib_yyvsp[(2) - (6)].str)); } +#line 704 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (11)].str),(grib_yyvsp[(9) - (11)].concept_value),0,(grib_yyvsp[(2) - (11)].str),(grib_yyvsp[(6) - (11)].str),0,0,0,(grib_yyvsp[(11) - (11)].lval),0); free((grib_yyvsp[(2) - (11)].str));free((grib_yyvsp[(4) - (11)].str));free((grib_yyvsp[(6) - (11)].str)); } break; case 187: /* Line 1792 of yacc.c */ -#line 703 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (9)].str),(grib_yyvsp[(7) - (9)].concept_value),0,0,(grib_yyvsp[(4) - (9)].str),0,0,0,(grib_yyvsp[(9) - (9)].lval),1); free((grib_yyvsp[(2) - (9)].str));free((grib_yyvsp[(4) - (9)].str)); } +#line 705 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (6)].str),(grib_yyvsp[(4) - (6)].concept_value),0,0,0,0,0,0,(grib_yyvsp[(6) - (6)].lval),1); free((grib_yyvsp[(2) - (6)].str)); } break; case 188: /* Line 1792 of yacc.c */ -#line 704 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (12)].str),0,(grib_yyvsp[(6) - (12)].str),0,(grib_yyvsp[(4) - (12)].str),(grib_yyvsp[(8) - (12)].str),(grib_yyvsp[(10) - (12)].str),0,(grib_yyvsp[(12) - (12)].lval),1); free((grib_yyvsp[(2) - (12)].str));free((grib_yyvsp[(6) - (12)].str));free((grib_yyvsp[(4) - (12)].str));free((grib_yyvsp[(8) - (12)].str));free((grib_yyvsp[(10) - (12)].str)); } +#line 706 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (9)].str),(grib_yyvsp[(7) - (9)].concept_value),0,0,(grib_yyvsp[(4) - (9)].str),0,0,0,(grib_yyvsp[(9) - (9)].lval),1); free((grib_yyvsp[(2) - (9)].str));free((grib_yyvsp[(4) - (9)].str)); } break; case 189: /* Line 1792 of yacc.c */ -#line 705 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (10)].str),0,(grib_yyvsp[(6) - (10)].str),0,(grib_yyvsp[(4) - (10)].str),(grib_yyvsp[(8) - (10)].str),0,0,(grib_yyvsp[(10) - (10)].lval),1); free((grib_yyvsp[(2) - (10)].str));free((grib_yyvsp[(6) - (10)].str));free((grib_yyvsp[(4) - (10)].str));free((grib_yyvsp[(8) - (10)].str)); } +#line 707 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (12)].str),0,(grib_yyvsp[(6) - (12)].str),0,(grib_yyvsp[(4) - (12)].str),(grib_yyvsp[(8) - (12)].str),(grib_yyvsp[(10) - (12)].str),0,(grib_yyvsp[(12) - (12)].lval),1); free((grib_yyvsp[(2) - (12)].str));free((grib_yyvsp[(6) - (12)].str));free((grib_yyvsp[(4) - (12)].str));free((grib_yyvsp[(8) - (12)].str));free((grib_yyvsp[(10) - (12)].str)); } break; case 190: /* Line 1792 of yacc.c */ -#line 706 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (14)].str),0,(grib_yyvsp[(8) - (14)].str),(grib_yyvsp[(2) - (14)].str),(grib_yyvsp[(6) - (14)].str),(grib_yyvsp[(10) - (14)].str),(grib_yyvsp[(12) - (14)].str),0,(grib_yyvsp[(14) - (14)].lval),1); free((grib_yyvsp[(4) - (14)].str));free((grib_yyvsp[(8) - (14)].str));free((grib_yyvsp[(6) - (14)].str));free((grib_yyvsp[(10) - (14)].str));free((grib_yyvsp[(12) - (14)].str)); free((grib_yyvsp[(2) - (14)].str));} +#line 708 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(2) - (10)].str),0,(grib_yyvsp[(6) - (10)].str),0,(grib_yyvsp[(4) - (10)].str),(grib_yyvsp[(8) - (10)].str),0,0,(grib_yyvsp[(10) - (10)].lval),1); free((grib_yyvsp[(2) - (10)].str));free((grib_yyvsp[(6) - (10)].str));free((grib_yyvsp[(4) - (10)].str));free((grib_yyvsp[(8) - (10)].str)); } break; case 191: /* Line 1792 of yacc.c */ -#line 707 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (12)].str),0,(grib_yyvsp[(8) - (12)].str),(grib_yyvsp[(2) - (12)].str),(grib_yyvsp[(6) - (12)].str),(grib_yyvsp[(10) - (12)].str),0,0,(grib_yyvsp[(12) - (12)].lval),1); free((grib_yyvsp[(4) - (12)].str));free((grib_yyvsp[(8) - (12)].str));free((grib_yyvsp[(6) - (12)].str));free((grib_yyvsp[(10) - (12)].str)); free((grib_yyvsp[(2) - (12)].str));} +#line 709 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (14)].str),0,(grib_yyvsp[(8) - (14)].str),(grib_yyvsp[(2) - (14)].str),(grib_yyvsp[(6) - (14)].str),(grib_yyvsp[(10) - (14)].str),(grib_yyvsp[(12) - (14)].str),0,(grib_yyvsp[(14) - (14)].lval),1); free((grib_yyvsp[(4) - (14)].str));free((grib_yyvsp[(8) - (14)].str));free((grib_yyvsp[(6) - (14)].str));free((grib_yyvsp[(10) - (14)].str));free((grib_yyvsp[(12) - (14)].str)); free((grib_yyvsp[(2) - (14)].str));} break; case 192: /* Line 1792 of yacc.c */ -#line 708 "griby.y" - { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (8)].str),(grib_yyvsp[(6) - (8)].concept_value),0,(grib_yyvsp[(2) - (8)].str),0,0,0,0,(grib_yyvsp[(8) - (8)].lval),1); free((grib_yyvsp[(2) - (8)].str));free((grib_yyvsp[(4) - (8)].str)); } +#line 710 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (12)].str),0,(grib_yyvsp[(8) - (12)].str),(grib_yyvsp[(2) - (12)].str),(grib_yyvsp[(6) - (12)].str),(grib_yyvsp[(10) - (12)].str),0,0,(grib_yyvsp[(12) - (12)].lval),1); free((grib_yyvsp[(4) - (12)].str));free((grib_yyvsp[(8) - (12)].str));free((grib_yyvsp[(6) - (12)].str));free((grib_yyvsp[(10) - (12)].str)); free((grib_yyvsp[(2) - (12)].str));} break; case 193: /* Line 1792 of yacc.c */ -#line 709 "griby.y" +#line 711 "griby.y" + { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (8)].str),(grib_yyvsp[(6) - (8)].concept_value),0,(grib_yyvsp[(2) - (8)].str),0,0,0,0,(grib_yyvsp[(8) - (8)].lval),1); free((grib_yyvsp[(2) - (8)].str));free((grib_yyvsp[(4) - (8)].str)); } + break; + + case 194: +/* Line 1792 of yacc.c */ +#line 712 "griby.y" { (grib_yyval.act) = grib_action_create_concept(grib_parser_context,(grib_yyvsp[(4) - (11)].str),(grib_yyvsp[(9) - (11)].concept_value),0,(grib_yyvsp[(2) - (11)].str),(grib_yyvsp[(6) - (11)].str),0,0,0,(grib_yyvsp[(11) - (11)].lval),1); free((grib_yyvsp[(2) - (11)].str));free((grib_yyvsp[(4) - (11)].str));free((grib_yyvsp[(6) - (11)].str)); } break; - case 195: + case 196: /* Line 1792 of yacc.c */ -#line 714 "griby.y" +#line 717 "griby.y" { (grib_yyval.concept_value) = (grib_yyvsp[(2) - (2)].concept_value); (grib_yyvsp[(2) - (2)].concept_value)->next = (grib_yyvsp[(1) - (2)].concept_value); } break; - case 197: -/* Line 1792 of yacc.c */ -#line 718 "griby.y" - { (grib_yyval.hash_array_value) = (grib_yyvsp[(2) - (2)].hash_array_value); (grib_yyvsp[(2) - (2)].hash_array_value)->next = (grib_yyvsp[(1) - (2)].hash_array_value); } - break; - case 198: /* Line 1792 of yacc.c */ #line 721 "griby.y" - { (grib_yyval.act) = grib_action_create_hash_array(grib_parser_context,(grib_yyvsp[(2) - (6)].str),(grib_yyvsp[(4) - (6)].hash_array_value),0,0,0,0,0,0,(grib_yyvsp[(6) - (6)].lval),0); free((grib_yyvsp[(2) - (6)].str)); } + { (grib_yyval.hash_array_value) = (grib_yyvsp[(2) - (2)].hash_array_value); (grib_yyvsp[(2) - (2)].hash_array_value)->next = (grib_yyvsp[(1) - (2)].hash_array_value); } break; case 199: /* Line 1792 of yacc.c */ -#line 722 "griby.y" - { (grib_yyval.act) = grib_action_create_hash_array(grib_parser_context,(grib_yyvsp[(2) - (12)].str),0,(grib_yyvsp[(6) - (12)].str),0,(grib_yyvsp[(4) - (12)].str),(grib_yyvsp[(8) - (12)].str),(grib_yyvsp[(10) - (12)].str),0,(grib_yyvsp[(12) - (12)].lval),0); free((grib_yyvsp[(2) - (12)].str));free((grib_yyvsp[(6) - (12)].str));free((grib_yyvsp[(4) - (12)].str));free((grib_yyvsp[(8) - (12)].str));free((grib_yyvsp[(10) - (12)].str)); } +#line 724 "griby.y" + { (grib_yyval.act) = grib_action_create_hash_array(grib_parser_context,(grib_yyvsp[(2) - (6)].str),(grib_yyvsp[(4) - (6)].hash_array_value),0,0,0,0,0,0,(grib_yyvsp[(6) - (6)].lval),0); free((grib_yyvsp[(2) - (6)].str)); } break; - case 201: + case 200: /* Line 1792 of yacc.c */ -#line 726 "griby.y" - { (grib_yyval.case_value) = (grib_yyvsp[(2) - (2)].case_value); (grib_yyvsp[(2) - (2)].case_value)->next = (grib_yyvsp[(1) - (2)].case_value); } +#line 725 "griby.y" + { (grib_yyval.act) = grib_action_create_hash_array(grib_parser_context,(grib_yyvsp[(2) - (12)].str),0,(grib_yyvsp[(6) - (12)].str),0,(grib_yyvsp[(4) - (12)].str),(grib_yyvsp[(8) - (12)].str),(grib_yyvsp[(10) - (12)].str),0,(grib_yyvsp[(12) - (12)].lval),0); free((grib_yyvsp[(2) - (12)].str));free((grib_yyvsp[(6) - (12)].str));free((grib_yyvsp[(4) - (12)].str));free((grib_yyvsp[(8) - (12)].str));free((grib_yyvsp[(10) - (12)].str)); } break; case 202: /* Line 1792 of yacc.c */ #line 729 "griby.y" - { (grib_yyval.case_value) = grib_case_new(grib_parser_context,(grib_yyvsp[(2) - (4)].explist),(grib_yyvsp[(4) - (4)].act)); } + { (grib_yyval.case_value) = (grib_yyvsp[(2) - (2)].case_value); (grib_yyvsp[(2) - (2)].case_value)->next = (grib_yyvsp[(1) - (2)].case_value); } break; case 203: /* Line 1792 of yacc.c */ -#line 733 "griby.y" - { (grib_yyval.act) = grib_action_create_switch(grib_parser_context,(grib_yyvsp[(3) - (10)].explist),(grib_yyvsp[(6) - (10)].case_value),(grib_yyvsp[(9) - (10)].act)); } +#line 732 "griby.y" + { (grib_yyval.case_value) = grib_case_new(grib_parser_context,(grib_yyvsp[(2) - (4)].explist),(grib_yyvsp[(4) - (4)].act)); } break; case 204: /* Line 1792 of yacc.c */ -#line 734 "griby.y" - { (grib_yyval.act) = grib_action_create_switch(grib_parser_context,(grib_yyvsp[(3) - (9)].explist),(grib_yyvsp[(6) - (9)].case_value),grib_action_create_noop(grib_parser_context,"continue")); } +#line 736 "griby.y" + { (grib_yyval.act) = grib_action_create_switch(grib_parser_context,(grib_yyvsp[(3) - (10)].explist),(grib_yyvsp[(6) - (10)].case_value),(grib_yyvsp[(9) - (10)].act)); } break; case 205: /* Line 1792 of yacc.c */ -#line 735 "griby.y" - { (grib_yyval.act) = grib_action_create_switch(grib_parser_context,(grib_yyvsp[(3) - (7)].explist),(grib_yyvsp[(6) - (7)].case_value),0); } +#line 737 "griby.y" + { (grib_yyval.act) = grib_action_create_switch(grib_parser_context,(grib_yyvsp[(3) - (9)].explist),(grib_yyvsp[(6) - (9)].case_value),grib_action_create_noop(grib_parser_context,"continue")); } break; case 206: /* Line 1792 of yacc.c */ #line 738 "griby.y" - { - (grib_yyval.concept_value) = grib_concept_value_new(grib_parser_context,(grib_yyvsp[(1) - (5)].str),(grib_yyvsp[(4) - (5)].concept_condition)); free((grib_yyvsp[(1) - (5)].str));} + { (grib_yyval.act) = grib_action_create_switch(grib_parser_context,(grib_yyvsp[(3) - (7)].explist),(grib_yyvsp[(6) - (7)].case_value),0); } break; case 207: /* Line 1792 of yacc.c */ -#line 740 "griby.y" +#line 741 "griby.y" { (grib_yyval.concept_value) = grib_concept_value_new(grib_parser_context,(grib_yyvsp[(1) - (5)].str),(grib_yyvsp[(4) - (5)].concept_condition)); free((grib_yyvsp[(1) - (5)].str));} break; case 208: /* Line 1792 of yacc.c */ -#line 742 "griby.y" +#line 743 "griby.y" { - char buf[80]; sprintf(buf,"%ld",(long)(grib_yyvsp[(1) - (5)].lval)); (grib_yyval.concept_value) = grib_concept_value_new(grib_parser_context,buf,(grib_yyvsp[(4) - (5)].concept_condition));} + (grib_yyval.concept_value) = grib_concept_value_new(grib_parser_context,(grib_yyvsp[(1) - (5)].str),(grib_yyvsp[(4) - (5)].concept_condition)); free((grib_yyvsp[(1) - (5)].str));} break; case 209: /* Line 1792 of yacc.c */ -#line 744 "griby.y" +#line 745 "griby.y" { - char buf[80]; sprintf(buf,"%g",(double)(grib_yyvsp[(1) - (5)].dval)); (grib_yyval.concept_value) = grib_concept_value_new(grib_parser_context,buf,(grib_yyvsp[(4) - (5)].concept_condition));} + char buf[80]; sprintf(buf,"%ld",(long)(grib_yyvsp[(1) - (5)].lval)); (grib_yyval.concept_value) = grib_concept_value_new(grib_parser_context,buf,(grib_yyvsp[(4) - (5)].concept_condition));} break; - case 211: + case 210: /* Line 1792 of yacc.c */ -#line 749 "griby.y" - { (grib_yyvsp[(1) - (2)].concept_condition)->next = (grib_yyvsp[(2) - (2)].concept_condition); (grib_yyval.concept_condition) = (grib_yyvsp[(1) - (2)].concept_condition); } +#line 747 "griby.y" + { + char buf[80]; sprintf(buf,"%g",(double)(grib_yyvsp[(1) - (5)].dval)); (grib_yyval.concept_value) = grib_concept_value_new(grib_parser_context,buf,(grib_yyvsp[(4) - (5)].concept_condition));} break; case 212: /* Line 1792 of yacc.c */ #line 752 "griby.y" - { (grib_yyval.concept_condition) = grib_concept_condition_new(grib_parser_context,(grib_yyvsp[(1) - (4)].str),(grib_yyvsp[(3) - (4)].exp),0); free((grib_yyvsp[(1) - (4)].str)); } + { (grib_yyvsp[(1) - (2)].concept_condition)->next = (grib_yyvsp[(2) - (2)].concept_condition); (grib_yyval.concept_condition) = (grib_yyvsp[(1) - (2)].concept_condition); } break; case 213: /* Line 1792 of yacc.c */ -#line 753 "griby.y" - { (grib_yyval.concept_condition) = grib_concept_condition_new(grib_parser_context,(grib_yyvsp[(1) - (6)].str),0,(grib_yyvsp[(4) - (6)].ivalue)); free((grib_yyvsp[(1) - (6)].str)); } +#line 755 "griby.y" + { (grib_yyval.concept_condition) = grib_concept_condition_new(grib_parser_context,(grib_yyvsp[(1) - (4)].str),(grib_yyvsp[(3) - (4)].exp),0); free((grib_yyvsp[(1) - (4)].str)); } break; case 214: /* Line 1792 of yacc.c */ -#line 757 "griby.y" - { - (grib_yyval.hash_array_value) = grib_integer_hash_array_value_new(grib_parser_context,(grib_yyvsp[(1) - (5)].str),(grib_yyvsp[(4) - (5)].ivalue)); free((grib_yyvsp[(1) - (5)].str));} +#line 756 "griby.y" + { (grib_yyval.concept_condition) = grib_concept_condition_new(grib_parser_context,(grib_yyvsp[(1) - (6)].str),0,(grib_yyvsp[(4) - (6)].ivalue)); free((grib_yyvsp[(1) - (6)].str)); } break; case 215: /* Line 1792 of yacc.c */ -#line 759 "griby.y" +#line 760 "griby.y" { (grib_yyval.hash_array_value) = grib_integer_hash_array_value_new(grib_parser_context,(grib_yyvsp[(1) - (5)].str),(grib_yyvsp[(4) - (5)].ivalue)); free((grib_yyvsp[(1) - (5)].str));} break; case 216: /* Line 1792 of yacc.c */ -#line 763 "griby.y" - { (grib_yyval.exp) = new_accessor_expression(grib_parser_context,(grib_yyvsp[(3) - (8)].str),(grib_yyvsp[(5) - (8)].lval),(grib_yyvsp[(7) - (8)].lval)); free((grib_yyvsp[(3) - (8)].str)); } +#line 762 "griby.y" + { + (grib_yyval.hash_array_value) = grib_integer_hash_array_value_new(grib_parser_context,(grib_yyvsp[(1) - (5)].str),(grib_yyvsp[(4) - (5)].ivalue)); free((grib_yyvsp[(1) - (5)].str));} break; case 217: /* Line 1792 of yacc.c */ -#line 764 "griby.y" - { (grib_yyval.exp) = new_accessor_expression(grib_parser_context,(grib_yyvsp[(1) - (1)].str),0,0); free((grib_yyvsp[(1) - (1)].str)); } +#line 766 "griby.y" + { (grib_yyval.exp) = new_accessor_expression(grib_parser_context,(grib_yyvsp[(3) - (8)].str),(grib_yyvsp[(5) - (8)].lval),(grib_yyvsp[(7) - (8)].lval)); free((grib_yyvsp[(3) - (8)].str)); } break; case 218: /* Line 1792 of yacc.c */ -#line 765 "griby.y" - { (grib_yyval.exp) = new_sub_string_expression(grib_parser_context,(grib_yyvsp[(3) - (8)].str),(grib_yyvsp[(5) - (8)].lval),(grib_yyvsp[(7) - (8)].lval)); free((grib_yyvsp[(3) - (8)].str)); } +#line 767 "griby.y" + { (grib_yyval.exp) = new_accessor_expression(grib_parser_context,(grib_yyvsp[(1) - (1)].str),0,0); free((grib_yyvsp[(1) - (1)].str)); } break; case 219: /* Line 1792 of yacc.c */ -#line 766 "griby.y" - { (grib_yyval.exp) = new_string_expression(grib_parser_context,(grib_yyvsp[(1) - (1)].str)); free((grib_yyvsp[(1) - (1)].str)); } +#line 768 "griby.y" + { (grib_yyval.exp) = new_sub_string_expression(grib_parser_context,(grib_yyvsp[(3) - (8)].str),(grib_yyvsp[(5) - (8)].lval),(grib_yyvsp[(7) - (8)].lval)); free((grib_yyvsp[(3) - (8)].str)); } break; - case 221: + case 220: /* Line 1792 of yacc.c */ -#line 770 "griby.y" - { (grib_yyval.exp) = new_long_expression(grib_parser_context,(grib_yyvsp[(1) - (1)].lval)); } +#line 769 "griby.y" + { (grib_yyval.exp) = new_string_expression(grib_parser_context,(grib_yyvsp[(1) - (1)].str)); free((grib_yyvsp[(1) - (1)].str)); } break; case 222: /* Line 1792 of yacc.c */ -#line 771 "griby.y" - { (grib_yyval.exp) = new_double_expression(grib_parser_context,(grib_yyvsp[(1) - (1)].dval)); /* TODO: change to new_float_expression*/} +#line 773 "griby.y" + { (grib_yyval.exp) = new_long_expression(grib_parser_context,(grib_yyvsp[(1) - (1)].lval)); } break; case 223: /* Line 1792 of yacc.c */ -#line 773 "griby.y" - { (grib_yyval.exp) = NULL; } +#line 774 "griby.y" + { (grib_yyval.exp) = new_double_expression(grib_parser_context,(grib_yyvsp[(1) - (1)].dval)); /* TODO: change to new_float_expression*/} break; case 224: /* Line 1792 of yacc.c */ -#line 774 "griby.y" - { (grib_yyval.exp) = new_true_expression(grib_parser_context); } +#line 776 "griby.y" + { (grib_yyval.exp) = NULL; } break; case 225: /* Line 1792 of yacc.c */ -#line 775 "griby.y" - { (grib_yyval.exp) = (grib_yyvsp[(2) - (3)].exp); } +#line 777 "griby.y" + { (grib_yyval.exp) = new_true_expression(grib_parser_context); } break; case 226: /* Line 1792 of yacc.c */ -#line 776 "griby.y" - { (grib_yyval.exp) = new_unop_expression(grib_parser_context,&grib_op_neg,&grib_op_neg_d,(grib_yyvsp[(2) - (2)].exp)); } +#line 778 "griby.y" + { (grib_yyval.exp) = (grib_yyvsp[(2) - (3)].exp); } break; case 227: /* Line 1792 of yacc.c */ -#line 777 "griby.y" - { (grib_yyval.exp) = new_func_expression(grib_parser_context,(grib_yyvsp[(1) - (3)].str),NULL); free((grib_yyvsp[(1) - (3)].str));} +#line 779 "griby.y" + { (grib_yyval.exp) = new_unop_expression(grib_parser_context,&grib_op_neg,&grib_op_neg_d,(grib_yyvsp[(2) - (2)].exp)); } break; case 228: /* Line 1792 of yacc.c */ -#line 778 "griby.y" - { (grib_yyval.exp) = new_func_expression(grib_parser_context,(grib_yyvsp[(1) - (4)].str),(grib_yyvsp[(3) - (4)].explist)); free((grib_yyvsp[(1) - (4)].str));} +#line 780 "griby.y" + { (grib_yyval.exp) = new_func_expression(grib_parser_context,(grib_yyvsp[(1) - (3)].str),NULL); free((grib_yyvsp[(1) - (3)].str));} break; case 229: /* Line 1792 of yacc.c */ -#line 782 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_pow,NULL,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 781 "griby.y" + { (grib_yyval.exp) = new_func_expression(grib_parser_context,(grib_yyvsp[(1) - (4)].str),(grib_yyvsp[(3) - (4)].explist)); free((grib_yyvsp[(1) - (4)].str));} break; - case 231: + case 230: /* Line 1792 of yacc.c */ -#line 786 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_mul,&grib_op_mul_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 785 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_pow,NULL,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 232: /* Line 1792 of yacc.c */ -#line 787 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_div,&grib_op_div_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 789 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_mul,&grib_op_mul_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 233: /* Line 1792 of yacc.c */ -#line 788 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_modulo,NULL,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 790 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_div,&grib_op_div_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 234: /* Line 1792 of yacc.c */ -#line 789 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_bit,NULL,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 791 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_modulo,NULL,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 235: /* Line 1792 of yacc.c */ -#line 790 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_bitoff,NULL,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 792 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_bit,NULL,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; - case 237: + case 236: /* Line 1792 of yacc.c */ -#line 792 "griby.y" - { (grib_yyval.exp) = new_length_expression(grib_parser_context,(grib_yyvsp[(3) - (4)].str)); free((grib_yyvsp[(3) - (4)].str));} +#line 793 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_bitoff,NULL,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 238: /* Line 1792 of yacc.c */ -#line 793 "griby.y" - { (grib_yyval.exp) = new_is_in_list_expression(grib_parser_context,(grib_yyvsp[(3) - (6)].str),(grib_yyvsp[(5) - (6)].str)); free((grib_yyvsp[(3) - (6)].str));free((grib_yyvsp[(5) - (6)].str));} +#line 795 "griby.y" + { (grib_yyval.exp) = new_length_expression(grib_parser_context,(grib_yyvsp[(3) - (4)].str)); free((grib_yyvsp[(3) - (4)].str));} break; case 239: /* Line 1792 of yacc.c */ -#line 794 "griby.y" - { (grib_yyval.exp) = new_is_in_dict_expression(grib_parser_context,(grib_yyvsp[(3) - (6)].str),(grib_yyvsp[(5) - (6)].str)); free((grib_yyvsp[(3) - (6)].str));free((grib_yyvsp[(5) - (6)].str));} +#line 796 "griby.y" + { (grib_yyval.exp) = new_is_in_list_expression(grib_parser_context,(grib_yyvsp[(3) - (6)].str),(grib_yyvsp[(5) - (6)].str)); free((grib_yyvsp[(3) - (6)].str));free((grib_yyvsp[(5) - (6)].str));} break; case 240: /* Line 1792 of yacc.c */ -#line 795 "griby.y" - { (grib_yyval.exp) = new_is_integer_expression(grib_parser_context,(grib_yyvsp[(3) - (6)].str),(grib_yyvsp[(5) - (6)].lval),0); free((grib_yyvsp[(3) - (6)].str));} +#line 797 "griby.y" + { (grib_yyval.exp) = new_is_in_dict_expression(grib_parser_context,(grib_yyvsp[(3) - (6)].str),(grib_yyvsp[(5) - (6)].str)); free((grib_yyvsp[(3) - (6)].str));free((grib_yyvsp[(5) - (6)].str));} break; case 241: /* Line 1792 of yacc.c */ -#line 796 "griby.y" - { (grib_yyval.exp) = new_is_integer_expression(grib_parser_context,(grib_yyvsp[(3) - (8)].str),(grib_yyvsp[(5) - (8)].lval),(grib_yyvsp[(7) - (8)].lval)); free((grib_yyvsp[(3) - (8)].str));} +#line 798 "griby.y" + { (grib_yyval.exp) = new_is_integer_expression(grib_parser_context,(grib_yyvsp[(3) - (6)].str),(grib_yyvsp[(5) - (6)].lval),0); free((grib_yyvsp[(3) - (6)].str));} break; case 242: /* Line 1792 of yacc.c */ -#line 797 "griby.y" - { (grib_yyval.exp) = new_is_integer_expression(grib_parser_context,(grib_yyvsp[(3) - (4)].str),0,0); free((grib_yyvsp[(3) - (4)].str));} +#line 799 "griby.y" + { (grib_yyval.exp) = new_is_integer_expression(grib_parser_context,(grib_yyvsp[(3) - (8)].str),(grib_yyvsp[(5) - (8)].lval),(grib_yyvsp[(7) - (8)].lval)); free((grib_yyvsp[(3) - (8)].str));} break; case 243: /* Line 1792 of yacc.c */ #line 800 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_add,&grib_op_add_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } + { (grib_yyval.exp) = new_is_integer_expression(grib_parser_context,(grib_yyvsp[(3) - (4)].str),0,0); free((grib_yyvsp[(3) - (4)].str));} break; case 244: /* Line 1792 of yacc.c */ -#line 801 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_sub,&grib_op_sub_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 803 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_add,&grib_op_add_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; - case 246: + case 245: /* Line 1792 of yacc.c */ -#line 805 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_gt,&grib_op_gt_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 804 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_sub,&grib_op_sub_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 247: /* Line 1792 of yacc.c */ -#line 807 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_eq,&grib_op_eq_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 808 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_gt,&grib_op_gt_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 248: /* Line 1792 of yacc.c */ -#line 808 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_lt,&grib_op_lt_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 810 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_eq,&grib_op_eq_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 249: /* Line 1792 of yacc.c */ -#line 809 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_ge,&grib_op_ge_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 811 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_lt,&grib_op_lt_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 250: /* Line 1792 of yacc.c */ -#line 810 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_le,&grib_op_le_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 812 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_ge,&grib_op_ge_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 251: /* Line 1792 of yacc.c */ -#line 811 "griby.y" - { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_ne,&grib_op_ne_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 813 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_le,&grib_op_le_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 252: /* Line 1792 of yacc.c */ -#line 812 "griby.y" - { (grib_yyval.exp) = new_string_compare_expression(grib_parser_context,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } +#line 814 "griby.y" + { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_ne,&grib_op_ne_d,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; case 253: /* Line 1792 of yacc.c */ -#line 817 "griby.y" +#line 815 "griby.y" + { (grib_yyval.exp) = new_string_compare_expression(grib_parser_context,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } + break; + + case 254: +/* Line 1792 of yacc.c */ +#line 820 "griby.y" { (grib_yyval.exp) = new_unop_expression(grib_parser_context,&grib_op_not,NULL,(grib_yyvsp[(2) - (2)].exp)); } break; - case 255: + case 256: /* Line 1792 of yacc.c */ -#line 821 "griby.y" +#line 824 "griby.y" { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_and,NULL,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp)); } break; - case 257: + case 258: /* Line 1792 of yacc.c */ -#line 825 "griby.y" +#line 828 "griby.y" { (grib_yyval.exp) = new_binop_expression(grib_parser_context,&grib_op_or,NULL,(grib_yyvsp[(1) - (3)].exp),(grib_yyvsp[(3) - (3)].exp));} break; - case 262: -/* Line 1792 of yacc.c */ -#line 839 "griby.y" - { (grib_yyval.rule_entry) = grib_new_rule_entry(grib_parser_context,(grib_yyvsp[(1) - (4)].str),(grib_yyvsp[(3) - (4)].exp)); free((grib_yyvsp[(1) - (4)].str)); } - break; - case 263: /* Line 1792 of yacc.c */ -#line 840 "griby.y" - { (grib_yyval.rule_entry) = grib_new_rule_entry(grib_parser_context,"skip",0);} +#line 842 "griby.y" + { (grib_yyval.rule_entry) = grib_new_rule_entry(grib_parser_context,(grib_yyvsp[(1) - (4)].str),(grib_yyvsp[(3) - (4)].exp)); free((grib_yyvsp[(1) - (4)].str)); } break; - case 265: + case 264: /* Line 1792 of yacc.c */ -#line 844 "griby.y" - { (grib_yyvsp[(1) - (2)].rule_entry)->next = (grib_yyvsp[(2) - (2)].rule_entry); (grib_yyval.rule_entry) = (grib_yyvsp[(1) - (2)].rule_entry); } +#line 843 "griby.y" + { (grib_yyval.rule_entry) = grib_new_rule_entry(grib_parser_context,"skip",0);} break; case 266: /* Line 1792 of yacc.c */ #line 847 "griby.y" - { (grib_yyval.rules) = grib_new_rule(grib_parser_context,NULL,(grib_yyvsp[(1) - (1)].rule_entry)); } + { (grib_yyvsp[(1) - (2)].rule_entry)->next = (grib_yyvsp[(2) - (2)].rule_entry); (grib_yyval.rule_entry) = (grib_yyvsp[(1) - (2)].rule_entry); } break; case 267: /* Line 1792 of yacc.c */ -#line 851 "griby.y" +#line 850 "griby.y" + { (grib_yyval.rules) = grib_new_rule(grib_parser_context,NULL,(grib_yyvsp[(1) - (1)].rule_entry)); } + break; + + case 268: +/* Line 1792 of yacc.c */ +#line 854 "griby.y" { (grib_yyval.rules) = grib_new_rule(grib_parser_context,(grib_yyvsp[(3) - (7)].exp),(grib_yyvsp[(6) - (7)].rule_entry)); } break; - case 269: + case 270: /* Line 1792 of yacc.c */ -#line 855 "griby.y" +#line 858 "griby.y" { (grib_yyvsp[(1) - (2)].rules)->next = (grib_yyvsp[(2) - (2)].rules); (grib_yyval.rules) = (grib_yyvsp[(1) - (2)].rules); } break; /* Line 1792 of yacc.c */ -#line 4010 "y.tab.c" +#line 4009 "y.tab.c" default: break; } /* User semantic actions sometimes alter grib_yychar, and that requires @@ -4238,7 +4237,7 @@ grib_yyreturn: /* Line 2055 of yacc.c */ -#line 859 "griby.y" +#line 862 "griby.y" static grib_concept_value *_reverse_concept(grib_concept_value *r,grib_concept_value *s) diff --git a/src/griby.y b/src/griby.y index c1bdd206b..d72411e12 100644 --- a/src/griby.y +++ b/src/griby.y @@ -500,6 +500,9 @@ simple : UNSIGNED '[' INTEGER ']' IDENT default flags | SECTION_LENGTH '[' INTEGER ']' IDENT { $$ = grib_action_create_gen(grib_parser_context,$5,"section_length",$3,NULL,NULL,0,NULL,NULL);free($5); } + | SECTION_LENGTH '[' INTEGER ']' IDENT default + { $$ = grib_action_create_gen(grib_parser_context,$5,"section_length",$3,NULL,$6,0,NULL,NULL);free($5); } + | G1_MESSAGE_LENGTH '[' INTEGER ']' IDENT '(' argument_list ')' { $$ = grib_action_create_gen(grib_parser_context,$5,"g1_message_length",$3,$7,NULL,0,NULL,NULL);free($5); } diff --git a/tests/bufr_filter.sh b/tests/bufr_filter.sh index 4e333d90e..1c44c385b 100755 --- a/tests/bufr_filter.sh +++ b/tests/bufr_filter.sh @@ -400,6 +400,7 @@ rm -f ${f}.ref ${f}.log fRulesReady="set_unexpandedDescriptors.filter" f="syno_1.bufr" testScript="set_unexpandedDescriptors_test.sh" +testScript1="set_unexpandedDescriptors_test_1.sh" echo "Test: set unexpandedDescriptors big test" >> $fLog echo "file: $f" >> $fLog @@ -407,14 +408,17 @@ cat >$testScript < $testScript1 +chmod +x $testScript1 ${tools_dir}bufr_filter $fRulesReady $f 2>> $fLog 1>> $testScript -./$testScript +sed -e "s:diff:${tools_dir}bufr_compare:" < $testScript >> $testScript1 + +./$testScript1 rm -f new_*bufr -rm -f $testScript +rm -f $testScript $testScript1 #----------------------------------------------------------- # Test: packing From 3d1e0f7c9762983590404c8dbf4b6692121c7d1a Mon Sep 17 00:00:00 2001 From: Enrico Fucile Date: Thu, 4 Feb 2016 18:06:13 +0000 Subject: [PATCH 2/3] ECC-218 --- definitions/bufr/section.1.3.def | 1 + 1 file changed, 1 insertion(+) diff --git a/definitions/bufr/section.1.3.def b/definitions/bufr/section.1.3.def index f842d1ce9..b4ab000f2 100644 --- a/definitions/bufr/section.1.3.def +++ b/definitions/bufr/section.1.3.def @@ -36,6 +36,7 @@ unsigned[1] typicalHour : dump; unsigned[1] typicalMinute : dump; unsigned[1] spare; # ??? +alias ls.centre=bufrHeaderCentre; alias ls.masterTablesVersionNumber=masterTablesVersionNumber; alias ls.localTablesVersionNumber=localTablesVersionNumber; From 497e85207b6ad5d9c8368dfd84d4a6503509b4e1 Mon Sep 17 00:00:00 2001 From: Enrico Fucile Date: Thu, 4 Feb 2016 18:43:24 +0000 Subject: [PATCH 3/3] ECC-219 uncompressed data --- definitions/bufr/boot.def | 2 ++ src/grib_accessor_class_bufr_data_array.c | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/definitions/bufr/boot.def b/definitions/bufr/boot.def index 1dc3225fc..ce9f94e0c 100644 --- a/definitions/bufr/boot.def +++ b/definitions/bufr/boot.def @@ -17,5 +17,7 @@ transient inputExtendedDelayedDescriptorReplicationFactor={-1}; #negative value=not used transient inputShortDelayedDescriptorReplicationFactor={-1}; +transient extractSubset=-1; + template boot_edition "bufr/boot_edition_[ed:l].def"; diff --git a/src/grib_accessor_class_bufr_data_array.c b/src/grib_accessor_class_bufr_data_array.c index c75b67975..5bbf1335e 100644 --- a/src/grib_accessor_class_bufr_data_array.c +++ b/src/grib_accessor_class_bufr_data_array.c @@ -1664,7 +1664,7 @@ static int process_elements(grib_accessor* a,int flag) grib_iarray* elementsDescriptorsIndex=0; long pos=0,dataOffset=0; - int iss,end,elementIndex,index; + int iss,end,start,elementIndex,index; long numberOfDescriptors; long totalSize; bufr_descriptor** descriptors=0; @@ -1674,6 +1674,7 @@ static int process_elements(grib_accessor* a,int flag) codec_element_proc codec_element; codec_replication_proc codec_replication; grib_accessor* dataAccessor=NULL; + long extractSubset=-1; grib_darray* dval = NULL; grib_sarray* sval = NULL; @@ -1718,6 +1719,7 @@ static int process_elements(grib_accessor* a,int flag) pos=0; codec_element=&encode_element; codec_replication=&encode_replication; + grib_get_long(grib_handle_of_accessor(a),"extractSubset",&extractSubset); break; default : return GRIB_NOT_IMPLEMENTED; @@ -1744,11 +1746,22 @@ static int process_elements(grib_accessor* a,int flag) self->elementsDescriptorsIndex=grib_viarray_new(c,100,100); } - end= self->compressedData ? 1 : self->numberOfSubsets; + if (self->compressedData == 1 ) { + start=0; + end=1 ; + } else { + if (extractSubset<=0) { + start=0; + end= self->numberOfSubsets; + } else { + start=extractSubset-1; + end= extractSubset; + } + } numberOfDescriptors=grib_bufr_descriptors_array_used_size(self->expanded); - for (iss=0;iss