#include "OurJpeg.h" int OurJpeg_SOF; void validateOurJpeg(char *ums__buffer, int ums__bitlen, ums__state_t *ums__state){ static char *FUNCTION="validate"; uint32_t code; int debug = 0; int error = 1; /* */ { int ums__debug = 0; ums__thread_tbl_t ums__thread_tbl; ums__thread_tbl.currentThreadNumber = 0; ums__dat_t ums__dat_array[UMS__NUM_THREAD]; ums__dat_t *ums__dat = &( ums__dat_array[ums__thread_tbl.currentThreadNumber] ); ums__dat->condition = UMS__CONDITION_NORMAL; ums__dat->nextThreadNumber = UMS__NULL; ums__dat->brunchStack.sp = -1; ums__dat->containerInfoStack.sp = -1; //// ums__dat->currentContainerInfo.epos = ums__dat->bitlen; ums__dat->currentContainerInfo.loopIndex = -1; ums__thread_tbl.num_alive = 1; ums__thread_tbl.firstFreeThreadNumber = 1; ums__thread_tbl.firstUsedThreadNumber = ums__thread_tbl.currentThreadNumber; ums__thread_tbl.dat_array = ums__dat_array; ums__thread_tbl.currentState = NULL; ums__thread_tbl.spos = 0; ums__thread_tbl.path[0] = '\0'; ums__thread_tbl.elementNo = 0; { int i; for ( i = 1; i < UMS__NUM_THREAD -1; i++ ) { ums__dat_array[i].nextThreadNumber = i + 1; } } ums__dat_array[UMS__NUM_THREAD -1].nextThreadNumber = UMS__NULL; int_push( &( ums__dat->brunchStack ), 1, ums__state ); catchAndThrow( ums__state ); if ( ums__debug == 1 ) { printf( " ## == mapping funciotn start ===================\n"); } ums__TMP_BUFFER_reset(); ums__dat->buffer = ums__buffer; ums__dat->spos = 0; ums__dat->bitlen = ums__bitlen; push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->bitlen; for ( ; ; ) { int cpos; if ( ums__debug == 1 ) { printf( " ## ** outer loop **************************\n"); printf( " ## ** num_alive = %d, currentThreadNo = %d\n", ums__thread_tbl.num_alive, ums__thread_tbl.currentThreadNumber ); } if ( ums__isFinished( &ums__thread_tbl, ums__dat , ums__state ) ) { if ( ums__debug == 1 ) { printf( " ## isFinished()\n"); printf( " ## end\n"); } break; } catchAndThrow( ums__state ); if ( ums__debug == 1 ) { printf( " ## isFinished()\n"); printf( " ## not end\n"); } ums__awake( &ums__thread_tbl, ums__dat , ums__state ); catchAndThrow( ums__state ); ums__dat = &ums__dat_array[ums__thread_tbl.currentThreadNumber]; if ( ums__debug == 1 ) { printf( " ## awake()\n"); printf( " ## currentThreadNo = %d\n", ums__thread_tbl.currentThreadNumber ); } cpos = int_pop( &( ums__dat->brunchStack ), ums__state ); catchAndThrow( ums__state ); for ( ; ; ) { if ( ums__debug == 1 ) { printf( " ## ** inner loop *********************\n"); printf( " ## ** num_alive = %d, cpos = %d\n", ums__thread_tbl.num_alive, cpos ); } switch ( cpos ) { case 1: /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFD8) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte/value", 6 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte", 5 ); /* */ if (debug) printf("SOI "); /* */ ums__dat->currentContainerInfo.loopIndex++; ums__dat->currentContainerInfo.loop[ums__dat->currentContainerInfo.loopIndex] = 0; ums__brunch( &ums__thread_tbl, ums__dat, -70, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = -70\n"); } /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFDB) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte/value", 9 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte", 8 ); /* */ if (debug) printf("DQT "); /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 0x0083 *8; /* should perform error checking of eposN */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0x0083) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte/byte/value", 12 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte/byte", 11 ); /* */ /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte/byte", 13 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte", 10 ); /* */ ums__dat->currentContainerInfo.loop[ums__dat->currentContainerInfo.loopIndex]++; case -70: ums__dat->currentContainerInfo.loopIndex--; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional", 7 ); /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFDD) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte/value", 15 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte", 14 ); /* */ if (debug) printf("DRI "); /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 4 *8; /* should perform error checking of eposN */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 4) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte/byte/value", 18 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte/byte", 17 ); /* */ /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte/byte", 19 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte", 16 ); /* */ /* */ ums__dat->currentContainerInfo.loopIndex++; ums__dat->currentContainerInfo.loop[ums__dat->currentContainerInfo.loopIndex] = 0; ums__brunch( &ums__thread_tbl, ums__dat, -200, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = -200\n"); } /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFFE) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte/value", 22 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte", 21 ); /* */ if (debug) printf("COM "); /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 0x000E *8; /* should perform error checking of eposN */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0x000E) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte/byte/value", 25 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte/byte", 24 ); /* */ /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte/byte", 26 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional/byte", 23 ); /* */ ums__dat->currentContainerInfo.loop[ums__dat->currentContainerInfo.loopIndex]++; case -200: ums__dat->currentContainerInfo.loopIndex--; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:optional", 20 ); /* */ /* */ ums__brunch( &ums__thread_tbl, ums__dat, 412, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = 412\n"); } /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFC0) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/value", 30 ); /* */ if (debug) printf("SOF0(=DCT8) "); OurJpeg_SOF = 0xC0; if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 29 ); /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 0x000B *8; /* should perform error checking of eposN */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0x000B) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte/value", 33 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 32 ); /* */ /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 34 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 31 ); /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFC4) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/value", 36 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 35 ); /* */ if (debug) printf("DHT "); /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 0x0126 *8; /* should perform error checking of eposN */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0x0126) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte/value", 39 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 38 ); /* */ /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 40 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 37 ); /* */ ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group", 28 ); /* */ cpos = -270; continue; case 412: ums__brunch( &ums__thread_tbl, ums__dat, 542, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = 542\n"); } /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFC1) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/value", 43 ); /* */ if (debug) printf("SOF1(=DCT12) "); OurJpeg_SOF = 0xC1; if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 42 ); /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 0x000B *8; /* should perform error checking of eposN */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0x000B) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte/value", 46 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 45 ); /* */ /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 47 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 44 ); /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFC4) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/value", 49 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 48 ); /* */ if (debug) printf("DHT "); /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 0x0126 *8; /* should perform error checking of eposN */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0x0126) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte/value", 52 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 51 ); /* */ /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 53 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 50 ); /* */ ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group", 41 ); /* */ cpos = -270; continue; case 542: /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFC3) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/value", 56 ); /* */ if (debug) printf("SOF3(=DPCM) "); OurJpeg_SOF = 0xC3; if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 55 ); /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 0x000B *8; /* should perform error checking of eposN */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0x000B) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte/value", 59 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 58 ); /* */ /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 60 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 57 ); /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFC4) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/value", 62 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 61 ); /* */ if (debug) printf("DHT "); /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 0x0023 *8; /* should perform error checking of eposN */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0x0023) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte/value", 65 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 64 ); /* */ /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte/byte", 66 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group/byte", 63 ); /* */ ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice/ums:group", 54 ); /* */ case -270: ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:choice", 27 ); /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xFFDA) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte/value", 68 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte", 67 ); /* */ if (debug) printf("SOS "); /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 0x0008 *8; /* should perform error checking of eposN */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 2 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0x0008) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte/byte/value", 71 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte/byte", 70 ); /* */ /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte/byte", 72 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte", 69 ); /* */ if (debug) printf("data "); /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__searchChar( ums__dat, ums__dat->currentContainerInfo.epos, '\xff', ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/list/byte", 74 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->spos = ums__skipChar( ums__dat, ums__dat->currentContainerInfo.epos, ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/list", 73 ); /* */ /* */ ums__dat->currentContainerInfo.loopIndex++; ums__dat->currentContainerInfo.loop[ums__dat->currentContainerInfo.loopIndex] = 0; case 750: ums__brunch( &ums__thread_tbl, ums__dat, -750, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = -750\n"); } /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 1 *8; /* should perform error checking of eposN */ /* */ ums__brunch( &ums__thread_tbl, ums__dat, 792, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = 792\n"); } /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; int spos = ums__dat->spos; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0x00) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } ums__dat->spos = spos; } ums__sync( ums__dat, 780, ums__debug , ums__state ); break; case 780: { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } code = ums__tmp; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte/ums:choice/ums:value", 78 ); /* */ cpos = -770; continue; case 792: ums__brunch( &ums__thread_tbl, ums__dat, 802, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = 802\n"); } /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; int spos = ums__dat->spos; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xD0) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } ums__dat->spos = spos; } ums__sync( ums__dat, 790, ums__debug , ums__state ); break; case 790: { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } code = ums__tmp; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte/ums:choice/ums:value", 79 ); /* */ cpos = -770; continue; case 802: ums__brunch( &ums__thread_tbl, ums__dat, 812, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = 812\n"); } /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; int spos = ums__dat->spos; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xD1) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } ums__dat->spos = spos; } ums__sync( ums__dat, 800, ums__debug , ums__state ); break; case 800: { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } code = ums__tmp; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte/ums:choice/ums:value", 80 ); /* */ cpos = -770; continue; case 812: ums__brunch( &ums__thread_tbl, ums__dat, 822, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = 822\n"); } /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; int spos = ums__dat->spos; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xD2) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } ums__dat->spos = spos; } ums__sync( ums__dat, 810, ums__debug , ums__state ); break; case 810: { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } code = ums__tmp; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte/ums:choice/ums:value", 81 ); /* */ cpos = -770; continue; case 822: ums__brunch( &ums__thread_tbl, ums__dat, 832, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = 832\n"); } /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; int spos = ums__dat->spos; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xD3) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } ums__dat->spos = spos; } ums__sync( ums__dat, 820, ums__debug , ums__state ); break; case 820: { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } code = ums__tmp; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte/ums:choice/ums:value", 82 ); /* */ cpos = -770; continue; case 832: ums__brunch( &ums__thread_tbl, ums__dat, 842, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = 842\n"); } /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; int spos = ums__dat->spos; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xD4) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } ums__dat->spos = spos; } ums__sync( ums__dat, 830, ums__debug , ums__state ); break; case 830: { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } code = ums__tmp; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte/ums:choice/ums:value", 83 ); /* */ cpos = -770; continue; case 842: ums__brunch( &ums__thread_tbl, ums__dat, 852, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = 852\n"); } /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; int spos = ums__dat->spos; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xD5) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } ums__dat->spos = spos; } ums__sync( ums__dat, 840, ums__debug , ums__state ); break; case 840: { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } code = ums__tmp; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte/ums:choice/ums:value", 84 ); /* */ cpos = -770; continue; case 852: ums__brunch( &ums__thread_tbl, ums__dat, 862, ums__state ); if ( ums__debug == 1 ) { printf( " ## brunch()\n"); printf( " ## cpos = 862\n"); } /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; int spos = ums__dat->spos; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xD6) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } ums__dat->spos = spos; } ums__sync( ums__dat, 850, ums__debug , ums__state ); break; case 850: { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } code = ums__tmp; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte/ums:choice/ums:value", 85 ); /* */ cpos = -770; continue; case 862: /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; int spos = ums__dat->spos; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xD7) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } ums__dat->spos = spos; } ums__sync( ums__dat, 860, ums__debug , ums__state ); break; case 860: { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } code = ums__tmp; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte/ums:choice/ums:value", 86 ); /* */ case -770: ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte/ums:choice", 77 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/byte", 76 ); /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__searchChar( ums__dat, ums__dat->currentContainerInfo.epos, '\xff', ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } /* */ ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/list/byte", 88 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->spos = ums__skipChar( ums__dat, ums__dat->currentContainerInfo.epos, ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore/list", 87 ); /* */ if (debug) switch( code ){ case 0x00: printf("(0xff) "); break; case 0xd0: case 0xd1: case 0xd2: case 0xd3: case 0xd4: case 0xd5: case 0xd6: case 0xd7: printf("RST%d ", code%8); break; default: printf("unknown marker 0xff%02x\n", code); } ums__dat->currentContainerInfo.loop[ums__dat->currentContainerInfo.loopIndex]++; cpos = 750; continue; case -750: ums__dat->currentContainerInfo.loopIndex--; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/ums:zeroOrMore", 75 ); /* */ /* */ push( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__dat->currentContainerInfo.epos = ums__dat->spos + 1 *8; /* should perform error checking of eposN */ /* */ ums__dat->epos = ums__dat->currentContainerInfo.epos; { uint32_t ums__tmp; ums__tmp = ums__W3C_unsignedEncode_unsignedIntType( ums__dat , ums__state ); if( ums__state->state < 0 ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; ums__state->spos = ums__thread_tbl.spos; strcpy( ums__state->path, ums__thread_tbl.path ); ums__state->elementNo = ums__thread_tbl.elementNo; ums__thread_tbl.currentState = ums__state; break; } if ( ! (ums__tmp == 0xD9) ) { ums__remove( &ums__thread_tbl, ums__dat, ums__debug, ums__state ); ums__state->state = UMS__STATE_OK; break; } } ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte/value", 90 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte/byte", 89 ); /* */ if (debug) printf("EOI"); error = 0; ums__dat->spos = ums__dat->currentContainerInfo.epos; ums__updateValid( &ums__thread_tbl, ums__dat->spos, "/ums:grammar/ums:start/ums:defineMapping/byte", 4 ); /* */ if( ums__dat->spos != ums__dat->currentContainerInfo.epos ) { { char detail[256]; ////// sprintf( detail, "spos = %d, bitlen = %d", ums__dat->spos, ums__dat->bitlen ); sprintf( detail, "spos(%d) != epos(%d)", ums__dat->spos, ums__dat->currentContainerInfo.epos ); throw( UMS__BITLENGTH_ERROR, ums__state, detail ); } } ums__dat->condition = UMS__CONDITION_END; break; } break; } } pop( &( ums__dat->containerInfoStack ), &( ums__dat->currentContainerInfo ), ums__state ); catchAndThrow( ums__state ); if ( ums__debug == 1 ) { printf( " ## == mapping funciotn end =====================\n"); } } /* */ if (debug) printf("\n"); if (debug) fflush(stdout); if( error ) ums__state->state = 999; }