2021-01-18 20:10:52 +00:00
/*
* GS1 AI checker generated by " backend/tools/gen_gs1_lint.php " from
2023-07-05 21:26:16 +01:00
* https : //raw.githubusercontent.com/gs1/gs1-syntax-dictionary/main/gs1-syntax-dictionary.txt
2021-01-18 20:10:52 +00:00
*/
/*
libzint - the open source barcode library
2023-07-05 21:26:16 +01:00
Copyright ( C ) 2021 - 2023 Robin Stuart < rstuart114 @ gmail . com >
2021-01-18 20:10:52 +00:00
Redistribution and use in source and binary forms , with or without
modification , are permitted provided that the following conditions
are met :
1. Redistributions of source code must retain the above copyright
notice , this list of conditions and the following disclaimer .
2. Redistributions in binary form must reproduce the above copyright
notice , this list of conditions and the following disclaimer in the
documentation and / or other materials provided with the distribution .
3. Neither the name of the project nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission .
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS " AS IS " AND
ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL
DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION )
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT
LIABILITY , OR TORT ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE .
*/
2022-07-14 20:44:48 +01:00
/* SPDX-License-Identifier: BSD-3-Clause */
2021-01-18 20:10:52 +00:00
2022-07-14 20:44:48 +01:00
# ifndef Z_GS1_LINT_H
# define Z_GS1_LINT_H
2021-01-18 20:10:52 +00:00
2023-07-05 21:26:16 +01:00
/* N18,csum,key (Used by SSCC, GSRN - PROVIDER, GSRN - RECIPIENT) */
2021-02-20 22:38:20 +00:00
static int n18_csum_key ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 18
& & csum ( data , data_len , 0 , 18 , 18 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & key ( data , data_len , 0 , 18 , 18 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 18 , 18 , p_err_no , p_err_posn , err_msg )
& & csum ( data , data_len , 0 , 18 , 18 , p_err_no , p_err_posn , err_msg , 0 )
& & key ( data , data_len , 0 , 18 , 18 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2021-02-20 22:38:20 +00:00
/* N14,csum,key (Used by GTIN, CONTENT) */
static int n14_csum_key ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 14
& & csum ( data , data_len , 0 , 14 , 14 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & key ( data , data_len , 0 , 14 , 14 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 14 , 14 , p_err_no , p_err_posn , err_msg )
& & csum ( data , data_len , 0 , 14 , 14 , p_err_no , p_err_posn , err_msg , 0 )
& & key ( data , data_len , 0 , 14 , 14 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* X..20 (Used by BATCH/LOT, SERIAL, CPV, PCN...) */
static int x__20 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 20
& & cset82 ( data , data_len , 0 , 1 , 20 , p_err_no , p_err_posn , err_msg ) ;
}
2021-02-20 22:38:20 +00:00
/* N6,yymmd0 (Used by PROD DATE, DUE DATE, PACK DATE, BEST BEFORE or BEST BY...) */
static int n6_yymmd0 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 6
& & yymmd0 ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg )
& & yymmd0 ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2021-02-20 22:38:20 +00:00
/* N2 (Used by VARIANT) */
static int n2 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 2
& & numeric ( data , data_len , 0 , 2 , 2 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* X..28 (Used by TPX) */
static int x__28 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 28
& & cset82 ( data , data_len , 0 , 1 , 28 , p_err_no , p_err_posn , err_msg ) ;
}
2023-07-05 21:26:16 +01:00
/* X..30 (Used by ADDITIONAL ID, CUST. PART No., SECONDARY SERIAL, REF. TO SOURCE...) */
2022-07-14 20:44:48 +01:00
static int x__30 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 30
& & cset82 ( data , data_len , 0 , 1 , 30 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* N..6 (Used by MTO VARIANT) */
static int n__6 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 6
& & numeric ( data , data_len , 0 , 1 , 6 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* N13,csum,key [X..17] (Used by GDTI) */
static int n13_csum_key__x__17_ ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 13 & & data_len < = 30
& & csum ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & key ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg )
& & csum ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 0 )
& & key ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 0 )
& & cset82 ( data , data_len , 13 , 0 , 17 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* N13,csum,key [N..12] (Used by GCN) */
static int n13_csum_key__n__12_ ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 13 & & data_len < = 25
& & csum ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & key ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg )
& & csum ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 0 )
& & key ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 13 , 0 , 12 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* N..8 (Used by VAR. COUNT, COUNT) */
static int n__8 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 8
& & numeric ( data , data_len , 0 , 1 , 8 , p_err_no , p_err_posn , err_msg ) ;
}
2021-02-20 22:38:20 +00:00
/* N6 (Used by NET WEIGHT (kg), LENGTH (m), WIDTH (m), HEIGHT (m)...) */
static int n6 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 6
& & numeric ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* N..15 (Used by AMOUNT, PRICE) */
static int n__15 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 15
& & numeric ( data , data_len , 0 , 1 , 15 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* N3,iso4217 N..15 (Used by AMOUNT, PRICE) */
static int n3_iso4217_n__15 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 4 & & data_len < = 18
& & iso4217 ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg )
& & iso4217 ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 3 , 1 , 15 , p_err_no , p_err_posn , err_msg ) ;
}
2021-02-20 17:50:06 +00:00
/* N4 (Used by PRCNT OFF, POINTS) */
2021-01-18 20:10:52 +00:00
static int n4 ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 4
& & numeric ( data , data_len , 0 , 4 , 4 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* X..30,key (Used by GINC, GIAI - ASSEMBLY, GIAI) */
static int x__30_key ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 30
& & key ( data , data_len , 0 , 1 , 30 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & cset82 ( data , data_len , 0 , 1 , 30 , p_err_no , p_err_posn , err_msg )
& & key ( data , data_len , 0 , 1 , 30 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2021-02-20 17:50:06 +00:00
/* N17,csum,key (Used by GSIN) */
2021-01-18 20:10:52 +00:00
static int n17_csum_key ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 17
& & csum ( data , data_len , 0 , 17 , 17 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & key ( data , data_len , 0 , 17 , 17 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 17 , 17 , p_err_no , p_err_posn , err_msg )
& & csum ( data , data_len , 0 , 17 , 17 , p_err_no , p_err_posn , err_msg , 0 )
& & key ( data , data_len , 0 , 17 , 17 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2021-02-20 22:38:20 +00:00
/* N13,csum,key (Used by SHIP TO LOC, BILL TO, PURCHASE FROM, SHIP FOR LOC...) */
static int n13_csum_key ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 13
& & csum ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & key ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg )
& & csum ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 0 )
& & key ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* N3,iso3166 X..9 (Used by SHIP TO POST) */
static int n3_iso3166_x__9 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 4 & & data_len < = 12
& & iso3166 ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg )
& & iso3166 ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg , 0 )
& & cset82 ( data , data_len , 3 , 1 , 9 , p_err_no , p_err_posn , err_msg ) ;
}
2021-02-20 17:50:06 +00:00
/* N3,iso3166 (Used by ORIGIN, COUNTRY - PROCESS, COUNTRY - FULL PROCESS) */
2021-01-18 20:10:52 +00:00
static int n3_iso3166 ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 3
& & iso3166 ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg )
& & iso3166 ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* N..15,iso3166list (Used by COUNTRY - INITIAL PROCESS, COUNTRY - DISASSEMBLY) */
static int n__15_iso3166list ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
2022-07-14 20:44:48 +01:00
return data_len > = 1 & & data_len < = 15
& & iso3166list ( data , data_len , 0 , 1 , 15 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 1 , 15 , p_err_no , p_err_posn , err_msg )
& & iso3166list ( data , data_len , 0 , 1 , 15 , p_err_no , p_err_posn , err_msg , 0 ) ;
2021-01-18 20:10:52 +00:00
}
2022-07-14 20:44:48 +01:00
/* X..3 (Used by ORIGIN SUBDIVISION, AQUATIC SPECIES) */
static int x__3 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 3
& & cset82 ( data , data_len , 0 , 1 , 3 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* X..35,pcenc (Used by SHIP TO COMP, SHIP TO NAME, RTN TO COMP, RTN TO NAME...) */
static int x__35_pcenc ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 35
& & pcenc ( data , data_len , 0 , 1 , 35 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & cset82 ( data , data_len , 0 , 1 , 35 , p_err_no , p_err_posn , err_msg )
& & pcenc ( data , data_len , 0 , 1 , 35 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* X..70,pcenc (Used by SHIP TO ADD1, SHIP TO ADD2, SHIP TO SUB, SHIP TO LOC...) */
static int x__70_pcenc ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 70
& & pcenc ( data , data_len , 0 , 1 , 70 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & cset82 ( data , data_len , 0 , 1 , 70 , p_err_no , p_err_posn , err_msg )
& & pcenc ( data , data_len , 0 , 1 , 70 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2021-02-20 17:50:06 +00:00
/* X2,iso3166alpha2 (Used by SHIP TO COUNTRY, RTN TO COUNTRY) */
2021-01-18 20:10:52 +00:00
static int x2_iso3166alpha2 ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 2
& & iso3166alpha2 ( data , data_len , 0 , 2 , 2 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & cset82 ( data , data_len , 0 , 2 , 2 , p_err_no , p_err_posn , err_msg )
& & iso3166alpha2 ( data , data_len , 0 , 2 , 2 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2023-07-05 21:26:16 +01:00
/* N10,latitude N10,longitude (Used by SHIP TO GEO) */
static int n10_latitude_n10_longitude ( const unsigned char * data , const int data_len ,
2022-07-14 20:44:48 +01:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 20
2023-07-05 21:26:16 +01:00
& & latitude ( data , data_len , 0 , 10 , 10 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & longitude ( data , data_len , 10 , 10 , 10 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 10 , 10 , p_err_no , p_err_posn , err_msg )
& & latitude ( data , data_len , 0 , 10 , 10 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 10 , 10 , 10 , p_err_no , p_err_posn , err_msg )
& & longitude ( data , data_len , 10 , 10 , 10 , p_err_no , p_err_posn , err_msg , 0 ) ;
2022-07-14 20:44:48 +01:00
}
/* N1,yesno (Used by DANGEROUS GOODS, AUTH TO LEAVE, SIG REQUIRED) */
2021-01-18 20:10:52 +00:00
static int n1_yesno ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 1
& & yesno ( data , data_len , 0 , 1 , 1 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 1 , 1 , p_err_no , p_err_posn , err_msg )
& & yesno ( data , data_len , 0 , 1 , 1 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* N6,yymmd0 N4,hhmm (Used by NOT BEF DEL DT, NOT AFT DEL DT) */
2021-01-18 20:10:52 +00:00
static int n6_yymmd0_n4_hhmm ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 10
& & yymmd0 ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & hhmm ( data , data_len , 6 , 4 , 4 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg )
& & yymmd0 ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 6 , 4 , 4 , p_err_no , p_err_posn , err_msg )
& & hhmm ( data , data_len , 6 , 4 , 4 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2021-02-20 17:50:06 +00:00
/* N6,yymmdd (Used by REL DATE, FIRST FREEZE DATE) */
2021-01-18 20:10:52 +00:00
static int n6_yymmdd ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 6
& & yymmdd ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg )
& & yymmdd ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2021-02-20 17:50:06 +00:00
/* N13 (Used by NSN) */
2021-01-18 20:10:52 +00:00
static int n13 ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 13
& & numeric ( data , data_len , 0 , 13 , 13 , p_err_no , p_err_posn , err_msg ) ;
}
2021-02-20 17:50:06 +00:00
/* N6,yymmdd N4,hhmm (Used by EXPIRY TIME) */
2021-01-18 20:10:52 +00:00
static int n6_yymmdd_n4_hhmm ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 10
& & yymmdd ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & hhmm ( data , data_len , 6 , 4 , 4 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg )
& & yymmdd ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 6 , 4 , 4 , p_err_no , p_err_posn , err_msg )
& & hhmm ( data , data_len , 6 , 4 , 4 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* N..4 (Used by ACTIVE POTENCY) */
static int n__4 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 4
& & numeric ( data , data_len , 0 , 1 , 4 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* X..12 (Used by CATCH AREA) */
static int x__12 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 12
& & cset82 ( data , data_len , 0 , 1 , 12 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* N6,yymmdd [N6],yymmdd (Used by HARVEST DATE) */
static int n6_yymmdd__n6__yymmdd ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 6 & & data_len < = 12
& & yymmdd ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & yymmdd ( data , data_len , 6 , 0 , 6 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg )
& & yymmdd ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 6 , 0 , 6 , p_err_no , p_err_posn , err_msg )
& & yymmdd ( data , data_len , 6 , 0 , 6 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* X..10 (Used by FISHING GEAR TYPE) */
static int x__10 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 10
& & cset82 ( data , data_len , 0 , 1 , 10 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* X..2 (Used by PROD METHOD) */
static int x__2 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 2
& & cset82 ( data , data_len , 0 , 1 , 2 , p_err_no , p_err_posn , err_msg ) ;
}
2022-12-07 10:54:36 +00:00
/* N6,yymmdd [N4],hhmm (Used by TEST BY DATE) */
static int n6_yymmdd__n4__hhmm ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 6 & & data_len < = 10
& & yymmdd ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & hhmm ( data , data_len , 6 , 0 , 4 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg )
& & yymmdd ( data , data_len , 0 , 6 , 6 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 6 , 0 , 4 , p_err_no , p_err_posn , err_msg )
& & hhmm ( data , data_len , 6 , 0 , 4 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* N3,iso3166999 X..27 (Used by PROCESSOR # 0, PROCESSOR # 1, PROCESSOR # 2, PROCESSOR # 3...) */
static int n3_iso3166999_x__27 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 4 & & data_len < = 30
& & iso3166999 ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg )
& & iso3166999 ( data , data_len , 0 , 3 , 3 , p_err_no , p_err_posn , err_msg , 0 )
& & cset82 ( data , data_len , 3 , 1 , 27 , p_err_no , p_err_posn , err_msg ) ;
}
2021-02-20 17:50:06 +00:00
/* N1 X1 X1 X1,importeridx (Used by UIC+EXT) */
2021-01-18 20:10:52 +00:00
static int n1_x1_x1_x1_importeridx ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 4
& & importeridx ( data , data_len , 3 , 1 , 1 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 1 , 1 , p_err_no , p_err_posn , err_msg )
& & cset82 ( data , data_len , 1 , 1 , 1 , p_err_no , p_err_posn , err_msg )
& & cset82 ( data , data_len , 2 , 1 , 1 , p_err_no , p_err_posn , err_msg )
& & cset82 ( data , data_len , 3 , 1 , 1 , p_err_no , p_err_posn , err_msg )
& & importeridx ( data , data_len , 3 , 1 , 1 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* X2 X..28 (Used by CERT # 1, CERT # 2, CERT # 3, CERT # 4...) */
static int x2_x__28 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 3 & & data_len < = 30
& & cset82 ( data , data_len , 0 , 2 , 2 , p_err_no , p_err_posn , err_msg )
& & cset82 ( data , data_len , 2 , 1 , 28 , p_err_no , p_err_posn , err_msg ) ;
}
2023-07-05 21:26:16 +01:00
/* N2,mediatype (Used by AIDC MEDIA TYPE) */
static int n2_mediatype ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 2
& & mediatype ( data , data_len , 0 , 2 , 2 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 2 , 2 , p_err_no , p_err_posn , err_msg )
& & mediatype ( data , data_len , 0 , 2 , 2 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
/* X..25 (Used by VCN, REF No.) */
static int x__25 ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 25
& & cset82 ( data , data_len , 0 , 1 , 25 , p_err_no , p_err_posn , err_msg ) ;
}
2021-02-20 17:50:06 +00:00
/* N4,nonzero N5,nonzero N3,nonzero N1,winding N1 (Used by DIMENSIONS) */
2021-01-18 20:10:52 +00:00
static int n4_nonzero_n5_nonzero_n3_nonzero_n1_winding_n1 ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 14
& & nonzero ( data , data_len , 0 , 4 , 4 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & nonzero ( data , data_len , 4 , 5 , 5 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & nonzero ( data , data_len , 9 , 3 , 3 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & winding ( data , data_len , 12 , 1 , 1 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 4 , 4 , p_err_no , p_err_posn , err_msg )
& & nonzero ( data , data_len , 0 , 4 , 4 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 4 , 5 , 5 , p_err_no , p_err_posn , err_msg )
& & nonzero ( data , data_len , 4 , 5 , 5 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 9 , 3 , 3 , p_err_no , p_err_posn , err_msg )
& & nonzero ( data , data_len , 9 , 3 , 3 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 12 , 1 , 1 , p_err_no , p_err_posn , err_msg )
& & winding ( data , data_len , 12 , 1 , 1 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 13 , 1 , 1 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* N1,zero N13,csum,key [X..16] (Used by GRAI) */
static int n1_zero_n13_csum_key__x__16_ ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 14 & & data_len < = 30
& & zero ( data , data_len , 0 , 1 , 1 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & csum ( data , data_len , 1 , 13 , 13 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & key ( data , data_len , 1 , 13 , 13 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 1 , 1 , p_err_no , p_err_posn , err_msg )
& & zero ( data , data_len , 0 , 1 , 1 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 1 , 13 , 13 , p_err_no , p_err_posn , err_msg )
& & csum ( data , data_len , 1 , 13 , 13 , p_err_no , p_err_posn , err_msg , 0 )
& & key ( data , data_len , 1 , 13 , 13 , p_err_no , p_err_posn , err_msg , 0 )
& & cset82 ( data , data_len , 14 , 0 , 16 , p_err_no , p_err_posn , err_msg ) ;
}
2021-02-20 17:50:06 +00:00
/* N14,csum N4,pieceoftotal (Used by ITIP, ITIP CONTENT) */
2021-01-18 20:10:52 +00:00
static int n14_csum_n4_pieceoftotal ( const unsigned char * data , const int data_len ,
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len = = 18
& & csum ( data , data_len , 0 , 14 , 14 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & pieceoftotal ( data , data_len , 14 , 4 , 4 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 14 , 14 , p_err_no , p_err_posn , err_msg )
& & csum ( data , data_len , 0 , 14 , 14 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 14 , 4 , 4 , p_err_no , p_err_posn , err_msg )
& & pieceoftotal ( data , data_len , 14 , 4 , 4 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* X..34,iban (Used by IBAN) */
static int x__34_iban ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 34
& & iban ( data , data_len , 0 , 1 , 34 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & cset82 ( data , data_len , 0 , 1 , 34 , p_err_no , p_err_posn , err_msg )
& & iban ( data , data_len , 0 , 1 , 34 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* N8,yymmddhh [N..4],mmoptss (Used by PROD TIME) */
static int n8_yymmddhh__n__4__mmoptss ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 8 & & data_len < = 12
& & yymmddhh ( data , data_len , 0 , 8 , 8 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & mmoptss ( data , data_len , 8 , 0 , 4 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 8 , 8 , p_err_no , p_err_posn , err_msg )
& & yymmddhh ( data , data_len , 0 , 8 , 8 , p_err_no , p_err_posn , err_msg , 0 )
& & numeric ( data , data_len , 8 , 0 , 4 , p_err_no , p_err_posn , err_msg )
& & mmoptss ( data , data_len , 8 , 0 , 4 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* X..50 (Used by OPTSEN) */
static int x__50 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 50
& & cset82 ( data , data_len , 0 , 1 , 50 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* Y..30,key (Used by CPID) */
static int y__30_key ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 30
& & key ( data , data_len , 0 , 1 , 30 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & cset39 ( data , data_len , 0 , 1 , 30 , p_err_no , p_err_posn , err_msg )
& & key ( data , data_len , 0 , 1 , 30 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* N..12,nozeroprefix (Used by CPID SERIAL) */
static int n__12_nozeroprefix ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 12
& & nozeroprefix ( data , data_len , 0 , 1 , 12 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & numeric ( data , data_len , 0 , 1 , 12 , p_err_no , p_err_posn , err_msg )
& & nozeroprefix ( data , data_len , 0 , 1 , 12 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* X..25,csumalpha,key (Used by GMN) */
static int x__25_csumalpha_key ( const unsigned char * data , const int data_len ,
2021-02-08 02:45:11 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 25
& & csumalpha ( data , data_len , 0 , 1 , 25 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & key ( data , data_len , 0 , 1 , 25 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & cset82 ( data , data_len , 0 , 1 , 25 , p_err_no , p_err_posn , err_msg )
& & csumalpha ( data , data_len , 0 , 1 , 25 , p_err_no , p_err_posn , err_msg , 0 )
& & key ( data , data_len , 0 , 1 , 25 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* N..10 (Used by SRIN) */
static int n__10 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 10
& & numeric ( data , data_len , 0 , 1 , 10 , p_err_no , p_err_posn , err_msg ) ;
}
2023-07-05 21:26:16 +01:00
/* Z..90 (Used by DIGSIG) */
static int z__90 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
2023-07-05 21:26:16 +01:00
return data_len > = 1 & & data_len < = 90
& & cset64 ( data , data_len , 0 , 1 , 90 , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
2022-07-14 20:44:48 +01:00
/* X..70,couponcode */
static int x__70_couponcode ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 70
& & couponcode ( data , data_len , 0 , 1 , 70 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & cset82 ( data , data_len , 0 , 1 , 70 , p_err_no , p_err_posn , err_msg )
& & couponcode ( data , data_len , 0 , 1 , 70 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* X..70,couponposoffer */
static int x__70_couponposoffer ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 70
& & couponposoffer ( data , data_len , 0 , 1 , 70 , p_err_no , p_err_posn , err_msg , 1 /*length_only*/ )
& & cset82 ( data , data_len , 0 , 1 , 70 , p_err_no , p_err_posn , err_msg )
& & couponposoffer ( data , data_len , 0 , 1 , 70 , p_err_no , p_err_posn , err_msg , 0 ) ;
}
2022-07-14 20:44:48 +01:00
/* X..70 (Used by PRODUCT URL) */
static int x__70 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 70
& & cset82 ( data , data_len , 0 , 1 , 70 , p_err_no , p_err_posn , err_msg ) ;
}
2022-07-14 20:44:48 +01:00
/* X..90 (Used by INTERNAL) */
static int x__90 ( const unsigned char * data , const int data_len ,
2021-01-18 20:10:52 +00:00
int * p_err_no , int * p_err_posn , char err_msg [ 50 ] ) {
return data_len > = 1 & & data_len < = 90
& & cset82 ( data , data_len , 0 , 1 , 90 , p_err_no , p_err_posn , err_msg ) ;
}
/* Entry point. Returns 1 on success, 0 on failure: `*p_err_no` set to 1 if unknown AI, 2 if bad data length */
static int gs1_lint ( const int ai , const unsigned char * data , const int data_len , int * p_err_no , int * p_err_posn ,
char err_msg [ 50 ] ) {
/* Assume data length failure */
* p_err_no = 2 ;
if ( ai < 100 ) {
if ( ai = = 0 ) {
2021-02-20 22:38:20 +00:00
return n18_csum_key ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 1 | | ai = = 2 ) {
2021-02-20 22:38:20 +00:00
return n14_csum_key ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 10 | | ai = = 21 | | ai = = 22 ) {
2022-07-14 20:44:48 +01:00
return x__20 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
2021-02-20 17:50:06 +00:00
if ( ( ai > = 11 & & ai < = 13 ) | | ( ai > = 15 & & ai < = 17 ) ) {
2021-02-20 22:38:20 +00:00
return n6_yymmd0 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 20 ) {
2021-02-20 22:38:20 +00:00
return n2 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 30 | | ai = = 37 ) {
2022-07-14 20:44:48 +01:00
return n__8 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 90 ) {
2022-07-14 20:44:48 +01:00
return x__30 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai > = 91 ) {
2022-07-14 20:44:48 +01:00
return x__90 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 300 ) {
if ( ai = = 235 ) {
2022-07-14 20:44:48 +01:00
return x__28 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 240 | | ai = = 241 | | ai = = 250 | | ai = = 251 ) {
2022-07-14 20:44:48 +01:00
return x__30 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 242 ) {
2022-07-14 20:44:48 +01:00
return n__6 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 243 | | ai = = 254 ) {
2022-07-14 20:44:48 +01:00
return x__20 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 253 ) {
2022-07-14 20:44:48 +01:00
return n13_csum_key__x__17_ ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 255 ) {
2022-07-14 20:44:48 +01:00
return n13_csum_key__n__12_ ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 500 ) {
if ( ai = = 400 | | ai = = 403 ) {
2022-07-14 20:44:48 +01:00
return x__30 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 401 ) {
2022-07-14 20:44:48 +01:00
return x__30_key ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 402 ) {
return n17_csum_key ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai > = 410 & & ai < = 417 ) {
2021-02-20 22:38:20 +00:00
return n13_csum_key ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 420 ) {
2022-07-14 20:44:48 +01:00
return x__20 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 421 ) {
2022-07-14 20:44:48 +01:00
return n3_iso3166_x__9 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 422 | | ai = = 424 | | ai = = 426 ) {
return n3_iso3166 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 423 | | ai = = 425 ) {
2022-07-14 20:44:48 +01:00
return n__15_iso3166list ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 427 ) {
2022-07-14 20:44:48 +01:00
return x__3 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 800 ) {
2022-02-10 22:18:35 +00:00
if ( ai > = 710 & & ai < = 715 ) {
2022-07-14 20:44:48 +01:00
return x__20 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 3200 ) {
2021-11-30 14:40:15 +00:00
if ( ( ai > = 3100 & & ai < = 3105 ) | | ( ai > = 3110 & & ai < = 3115 ) | | ( ai > = 3120 & & ai < = 3125 )
| | ( ai > = 3130 & & ai < = 3135 ) | | ( ai > = 3140 & & ai < = 3145 ) | | ( ai > = 3150 & & ai < = 3155 )
| | ( ai > = 3160 & & ai < = 3165 ) ) {
2021-02-20 22:38:20 +00:00
return n6 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 3300 ) {
2021-11-30 14:40:15 +00:00
if ( ai < = 3205 | | ( ai > = 3210 & & ai < = 3215 ) | | ( ai > = 3220 & & ai < = 3225 ) | | ( ai > = 3230 & & ai < = 3235 )
| | ( ai > = 3240 & & ai < = 3245 ) | | ( ai > = 3250 & & ai < = 3255 ) | | ( ai > = 3260 & & ai < = 3265 )
| | ( ai > = 3270 & & ai < = 3275 ) | | ( ai > = 3280 & & ai < = 3285 ) | | ( ai > = 3290 & & ai < = 3295 ) ) {
2021-02-20 22:38:20 +00:00
return n6 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 3400 ) {
2021-11-30 14:40:15 +00:00
if ( ai < = 3305 | | ( ai > = 3310 & & ai < = 3315 ) | | ( ai > = 3320 & & ai < = 3325 ) | | ( ai > = 3330 & & ai < = 3335 )
| | ( ai > = 3340 & & ai < = 3345 ) | | ( ai > = 3350 & & ai < = 3355 ) | | ( ai > = 3360 & & ai < = 3365 )
| | ( ai > = 3370 & & ai < = 3375 ) ) {
2021-02-20 22:38:20 +00:00
return n6 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 3500 ) {
2021-11-30 14:40:15 +00:00
if ( ai < = 3405 | | ( ai > = 3410 & & ai < = 3415 ) | | ( ai > = 3420 & & ai < = 3425 ) | | ( ai > = 3430 & & ai < = 3435 )
| | ( ai > = 3440 & & ai < = 3445 ) | | ( ai > = 3450 & & ai < = 3455 ) | | ( ai > = 3460 & & ai < = 3465 )
| | ( ai > = 3470 & & ai < = 3475 ) | | ( ai > = 3480 & & ai < = 3485 ) | | ( ai > = 3490 & & ai < = 3495 ) ) {
2021-02-20 22:38:20 +00:00
return n6 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 3600 ) {
2021-11-30 14:40:15 +00:00
if ( ai < = 3505 | | ( ai > = 3510 & & ai < = 3515 ) | | ( ai > = 3520 & & ai < = 3525 ) | | ( ai > = 3530 & & ai < = 3535 )
| | ( ai > = 3540 & & ai < = 3545 ) | | ( ai > = 3550 & & ai < = 3555 ) | | ( ai > = 3560 & & ai < = 3565 )
| | ( ai > = 3570 & & ai < = 3575 ) ) {
2021-02-20 22:38:20 +00:00
return n6 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 3700 ) {
2021-11-30 14:40:15 +00:00
if ( ai < = 3605 | | ( ai > = 3610 & & ai < = 3615 ) | | ( ai > = 3620 & & ai < = 3625 ) | | ( ai > = 3630 & & ai < = 3635 )
| | ( ai > = 3640 & & ai < = 3645 ) | | ( ai > = 3650 & & ai < = 3655 ) | | ( ai > = 3660 & & ai < = 3665 )
| | ( ai > = 3670 & & ai < = 3675 ) | | ( ai > = 3680 & & ai < = 3685 ) | | ( ai > = 3690 & & ai < = 3695 ) ) {
2021-02-20 22:38:20 +00:00
return n6 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 4000 ) {
if ( ( ai > = 3900 & & ai < = 3909 ) | | ( ai > = 3920 & & ai < = 3929 ) ) {
2022-07-14 20:44:48 +01:00
return n__15 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ( ai > = 3910 & & ai < = 3919 ) | | ( ai > = 3930 & & ai < = 3939 ) ) {
2022-07-14 20:44:48 +01:00
return n3_iso4217_n__15 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
2021-11-30 14:40:15 +00:00
if ( ai > = 3940 & & ai < = 3943 ) {
2021-01-18 20:10:52 +00:00
return n4 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
2021-11-30 14:40:15 +00:00
if ( ai > = 3950 & & ai < = 3955 ) {
2021-01-18 20:10:52 +00:00
return n6 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
} else if ( ai < 4400 ) {
if ( ai = = 4300 | | ai = = 4301 | | ai = = 4310 | | ai = = 4311 | | ai = = 4320 ) {
2022-07-14 20:44:48 +01:00
return x__35_pcenc ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ( ai > = 4302 & & ai < = 4306 ) | | ( ai > = 4312 & & ai < = 4316 ) ) {
2022-07-14 20:44:48 +01:00
return x__70_pcenc ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 4307 | | ai = = 4317 ) {
return x2_iso3166alpha2 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
2021-01-28 23:41:54 +00:00
if ( ai = = 4308 | | ai = = 4319 ) {
2022-07-14 20:44:48 +01:00
return x__30 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 4309 ) {
2023-07-05 21:26:16 +01:00
return n10_latitude_n10_longitude ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 4318 ) {
2022-07-14 20:44:48 +01:00
return x__20 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai > = 4321 & & ai < = 4323 ) {
return n1_yesno ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 4324 | | ai = = 4325 ) {
return n6_yymmd0_n4_hhmm ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 4326 ) {
return n6_yymmdd ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
} else if ( ai < 7100 ) {
if ( ai = = 7001 ) {
return n13 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 7002 ) {
2022-07-14 20:44:48 +01:00
return x__30 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 7003 ) {
return n6_yymmdd_n4_hhmm ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 7004 ) {
2022-07-14 20:44:48 +01:00
return n__4 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 7005 ) {
2022-07-14 20:44:48 +01:00
return x__12 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 7006 ) {
return n6_yymmdd ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 7007 ) {
2022-07-14 20:44:48 +01:00
return n6_yymmdd__n6__yymmdd ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 7008 ) {
2022-07-14 20:44:48 +01:00
return x__3 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 7009 ) {
2022-07-14 20:44:48 +01:00
return x__10 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 7010 ) {
2022-07-14 20:44:48 +01:00
return x__2 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
2022-12-07 10:54:36 +00:00
if ( ai = = 7011 ) {
return n6_yymmdd__n4__hhmm ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
2021-01-18 20:10:52 +00:00
if ( ai > = 7020 & & ai < = 7022 ) {
2022-07-14 20:44:48 +01:00
return x__20 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 7023 ) {
2022-07-14 20:44:48 +01:00
return x__30_key ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai > = 7030 & & ai < = 7039 ) {
2022-07-14 20:44:48 +01:00
return n3_iso3166999_x__27 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 7040 ) {
return n1_x1_x1_x1_importeridx ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
} else if ( ai < 7300 ) {
if ( ai > = 7230 & & ai < = 7239 ) {
2022-07-14 20:44:48 +01:00
return x2_x__28 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 7240 ) {
2022-07-14 20:44:48 +01:00
return x__20 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
2023-07-05 21:26:16 +01:00
if ( ai = = 7241 ) {
return n2_mediatype ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 7242 ) {
return x__25 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
2021-01-18 20:10:52 +00:00
} else if ( ai < 8100 ) {
if ( ai = = 8001 ) {
return n4_nonzero_n5_nonzero_n3_nonzero_n1_winding_n1 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 8002 | | ai = = 8012 ) {
2022-07-14 20:44:48 +01:00
return x__20 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 8003 ) {
2022-07-14 20:44:48 +01:00
return n1_zero_n13_csum_key__x__16_ ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
2021-02-08 02:45:11 +00:00
if ( ai = = 8004 ) {
2022-07-14 20:44:48 +01:00
return x__30_key ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 8005 ) {
return n6 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 8006 | | ai = = 8026 ) {
return n14_csum_n4_pieceoftotal ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 8007 ) {
2022-07-14 20:44:48 +01:00
return x__34_iban ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 8008 ) {
2022-07-14 20:44:48 +01:00
return n8_yymmddhh__n__4__mmoptss ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 8009 ) {
2022-07-14 20:44:48 +01:00
return x__50 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 8010 ) {
2022-07-14 20:44:48 +01:00
return y__30_key ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 8011 ) {
2022-07-14 20:44:48 +01:00
return n__12_nozeroprefix ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
2021-02-08 02:45:11 +00:00
if ( ai = = 8013 ) {
2022-07-14 20:44:48 +01:00
return x__25_csumalpha_key ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-02-08 02:45:11 +00:00
}
2021-01-18 20:10:52 +00:00
if ( ai = = 8017 | | ai = = 8018 ) {
2023-07-05 21:26:16 +01:00
return n18_csum_key ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 8019 ) {
2022-07-14 20:44:48 +01:00
return n__10 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 8020 ) {
2022-07-14 20:44:48 +01:00
return x__25 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
2023-07-05 21:26:16 +01:00
if ( ai = = 8030 ) {
return z__90 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
2021-01-18 20:10:52 +00:00
} else if ( ai < 8200 ) {
if ( ai = = 8110 ) {
2022-07-14 20:44:48 +01:00
return x__70_couponcode ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
if ( ai = = 8111 ) {
return n4 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
}
if ( ai = = 8112 ) {
2022-07-14 20:44:48 +01:00
return x__70_couponposoffer ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
} else if ( ai < 8300 ) {
if ( ai = = 8200 ) {
2022-07-14 20:44:48 +01:00
return x__70 ( data , data_len , p_err_no , p_err_posn , err_msg ) ;
2021-01-18 20:10:52 +00:00
}
}
/* Unknown AI */
* p_err_no = 1 ;
return 0 ;
}
2022-07-14 20:44:48 +01:00
# endif /* Z_GS1_LINT_H */