/* * Interface: LocationProvider * Required Port: LOC * From Provider Message: locationUpdate */ void Tracking_LOC_locationUpdate( GPSWatch_sdt_Location p_location) { Tracking_TrackLog * trackLog=0; /* LOG::LogInfo( message:location updated: ) */ XTUML_OAL_STMT_TRACE( 1, "LOG::LogInfo( message:location updated: )" ); LOG_LogInfo( "location updated: " ); /* LOG::LogReal( message:longitude, r:PARAM.location.longitude ) */ XTUML_OAL_STMT_TRACE( 1, "LOG::LogReal( message:longitude, r:PARAM.location.longitude )" ); LOG_LogReal( "longitude", p_location.longitude ); /* LOG::LogReal( message:latitude, r:PARAM.location.latitude ) */ XTUML_OAL_STMT_TRACE( 1, "LOG::LogReal( message:latitude, r:PARAM.location.latitude )" ); LOG_LogReal( "latitude", p_location.latitude ); /* LOG::LogReal( message:speed, r:PARAM.location.speed ) */ XTUML_OAL_STMT_TRACE( 1, "LOG::LogReal( message:speed, r:PARAM.location.speed )" ); LOG_LogReal( "speed", p_location.speed ); /* SELECT any trackLog FROM INSTANCES OF TrackLog */ XTUML_OAL_STMT_TRACE( 1, "SELECT any trackLog FROM INSTANCES OF TrackLog" ); trackLog = (Tracking_TrackLog *) Escher_SetGetAny( &pG_Tracking_TrackLog_extent.active ); /* IF ( not empty trackLog ) */ XTUML_OAL_STMT_TRACE( 1, "IF ( not empty trackLog )" ); if ( !( 0 == trackLog ) ) { /* trackLog.addTrackPoint( location:PARAM.location ) */ XTUML_OAL_STMT_TRACE( 2, "trackLog.addTrackPoint( location:PARAM.location )" ); Tracking_TrackLog_op_addTrackPoint( trackLog, p_location ); } }
/* * Interface: i2 * Provided Port: burn * To Provider Message: o2 */ i_t c2_burn_o2( const i_t p_op2) { /* <message compname="c2" compnum="1" portname="burn" portnum="1" msgname="o2" msgnum="0"/> */ COMP_MSG_START_TRACE( "%d", 1, 1, 0, p_op2 ); c_t s[ESCHER_SYS_MAX_STRING_LEN]; i_t p; /* ASSIGN s = 'tac burn' */ XTUML_OAL_STMT_TRACE( 1, "ASSIGN s = 'tac burn'" ); Escher_strcpy( s, "tac burn" ); /* LOG::LogInfo( message:s ) */ XTUML_OAL_STMT_TRACE( 1, "LOG::LogInfo( message:s )" ); LOG_LogInfo( s ); /* ASSIGN p = PARAM.op2 */ XTUML_OAL_STMT_TRACE( 1, "ASSIGN p = PARAM.op2" ); p = p_op2; /* IF ( ( 2 != PARAM.op2 ) ) */ XTUML_OAL_STMT_TRACE( 1, "IF ( ( 2 != PARAM.op2 ) )" ); if ( ( 2 != p_op2 ) ) { /* LOG::LogFailure( message:'tac burn did not get 2' ) */ XTUML_OAL_STMT_TRACE( 2, "LOG::LogFailure( message:'tac burn did not get 2' )" ); LOG_LogFailure( "tac burn did not get 2" ); } else { /* RETURN ( lase::o2(3) + 1 ) */ XTUML_OAL_STMT_TRACE( 2, "RETURN ( lase::o2(3) + 1 )" ); return ( c2_lase_o2( 3 ) + 1 ); } /* RETURN 0 */ XTUML_OAL_STMT_TRACE( 1, "RETURN 0" ); return 0; }
/* * Interface: i2 * Provided Port: burn * To Provider Message: o2 */ i_t c1_burn_o2( const i_t p_op2) { /* <message compname="c1" compnum="0" portname="burn" portnum="1" msgname="o2" msgnum="0"/> */ COMP_MSG_START_TRACE( "%d", 0, 1, 0, p_op2 ); c_t s[ESCHER_SYS_MAX_STRING_LEN]; /* ASSIGN s = 'tic burn' */ XTUML_OAL_STMT_TRACE( 1, "ASSIGN s = 'tic burn'" ); Escher_strcpy( s, "tic burn" ); /* LOG::LogInfo( message:s ) */ XTUML_OAL_STMT_TRACE( 1, "LOG::LogInfo( message:s )" ); LOG_LogInfo( s ); /* IF ( ( 3 != PARAM.op2 ) ) */ XTUML_OAL_STMT_TRACE( 1, "IF ( ( 3 != PARAM.op2 ) )" ); if ( ( 3 != p_op2 ) ) { /* LOG::LogFailure( message:'tic burn did not get 3' ) */ XTUML_OAL_STMT_TRACE( 2, "LOG::LogFailure( message:'tic burn did not get 3' )" ); LOG_LogFailure( "tic burn did not get 3" ); } else { /* SEND toss::s1(sp1:1) */ XTUML_OAL_STMT_TRACE( 2, " SEND toss::s1(sp1:1)" ); c1_toss_s1( 1 ); } /* RETURN 1 */ XTUML_OAL_STMT_TRACE( 1, "RETURN 1" ); return 1; }
/* * Domain Function: display */ void sudoku_display( void ) { i_t i; /* ASSIGN i = 1 */ i = 1; /* LOG::LogInfo( message:'\n|-+-+-+-+-+-+-+-+-|\n' ) */ LOG_LogInfo( "\n|-+-+-+-+-+-+-+-+-|\n" ); /* WHILE ( ( i <= 9 ) ) */ while ( ( i <= 9 ) ) { i_t j;i_t b[9]; /* ASSIGN j = 1 */ j = 1; /* ASSIGN b[8] = 0 */ Escher_memmove( (void * const) &(b[8]), (void const * const) &(0), sizeof( 0 ) ); /* WHILE ( ( j <= 9 ) ) */ while ( ( j <= 9 ) ) { sudoku_CELL * cell;i_t a; /* SELECT any cell FROM INSTANCES OF CELL WHERE ( ( SELECTED.row_number == i ) and ( SELECTED.column_number == j ) ) */ cell = 0; { sudoku_CELL * selected; Escher_Iterator_s iter41_CELL; Escher_IteratorReset( &iter41_CELL, &pG_sudoku_CELL_extent.active ); while ( (selected = (sudoku_CELL *) Escher_IteratorNext( &iter41_CELL )) != 0 ) { if ( ( ( selected->row_number == i ) && ( selected->column_number == j ) ) ) { cell = selected; break; } } } /* ASSIGN a = cell.answer_value */ a = cell->answer_value; /* ASSIGN b[( j - 1 )] = a */ Escher_memmove( (void * const) &(b[( j - 1 )]), (void const * const) &(a), sizeof( a ) ); /* ASSIGN j = ( j + 1 ) */ j = ( j + 1 ); } /* LOG::LogInteger( message:b ) */ LOG_LogInteger( b ); /* ASSIGN i = ( i + 1 ) */ i = ( i + 1 ); } /* LOG::LogInfo( message:'\n|-+-+-+-+-+-+-+-+-|\n' ) */ LOG_LogInfo( "\n|-+-+-+-+-+-+-+-+-|\n" ); }
/* * instance operation: render */ void ooaofooa_DOC_DOC_op_render( ooaofooa_DOC_DOC * self) { ooaofooa_DOC_SEC * doc_sec=0; /* LOG::LogInfo( message:document start ) */ LOG_LogInfo( "document start" ); /* T::include( file:docbook/t.documentbegin.h ) */ #include "docbook/t.documentbegin.h" /* SELECT one doc_sec RELATED BY self->DOC_SEC[R2300] */ doc_sec = ( 0 != self ) ? self->DOC_SEC_R2300_has_first : 0; /* doc_sec.render( doc_doc:self ) */ ooaofooa_DOC_SEC_op_render( doc_sec, self ); /* T::include( file:docbook/t.documentend.h ) */ #include "docbook/t.documentend.h" /* T::emit( file:self.filename ) */ T_emit( self->filename ); /* LOG::LogInfo( message:document finish ) */ LOG_LogInfo( "document finish" ); }
/* * instance operation: render */ void ooaofooa_DOC_SEC_op_render( ooaofooa_DOC_SEC * self, ooaofooa_DOC_DOC * p_doc_doc ) { ooaofooa_DOC_DOC * doc_doc;ooaofooa_DOC_SEC * doc_sec;ooaofooa_DOC_SEC * following_doc_sec=0;ooaofooa_DOC_SEC * child_doc_sec=0;ooaofooa_DOC_PAR * doc_par=0;ooaofooa_DOC_FOOT * doc_foot=0;ooaofooa_DOC_HEAD * doc_head=0; /* ASSIGN doc_sec = self */ doc_sec = self; /* ASSIGN doc_doc = PARAM.doc_doc */ doc_doc = p_doc_doc; /* LOG::LogInfo( message:( self.title + self.subtitle ) ) */ LOG_LogInfo( Escher_stradd( self->title, self->subtitle ) ); /* T::include( file:docbook/t.section_begin_no_abstract.h ) */ #include "docbook/t.section_begin_no_abstract.h" /* SELECT one doc_head RELATED BY self->DOC_HEAD[R2309] */ doc_head = ( 0 != self ) ? self->DOC_HEAD_R2309 : 0; /* IF ( not_empty doc_head ) */ if ( ( 0 != doc_head ) ) { } /* SELECT one doc_foot RELATED BY self->DOC_FOOT[R2308] */ doc_foot = ( 0 != self ) ? self->DOC_FOOT_R2308 : 0; /* IF ( not_empty doc_foot ) */ if ( ( 0 != doc_foot ) ) { } /* SELECT one doc_par RELATED BY self->DOC_PAR[R2305] */ doc_par = ( 0 != self ) ? self->DOC_PAR_R2305_has_first : 0; /* IF ( not_empty doc_par ) */ if ( ( 0 != doc_par ) ) { /* doc_par.render() */ ooaofooa_DOC_PAR_op_render( doc_par ); } /* SELECT one child_doc_sec RELATED BY self->DOC_SEC[R2307.has first child] */ child_doc_sec = ( 0 != self ) ? self->DOC_SEC_R2307_has_first_child : 0; /* IF ( not_empty child_doc_sec ) */ if ( ( 0 != child_doc_sec ) ) { /* child_doc_sec.render( doc_doc:doc_doc ) */ ooaofooa_DOC_SEC_op_render( child_doc_sec, doc_doc ); } /* T::include( file:docbook/t.section_end.h ) */ #include "docbook/t.section_end.h" /* T::emit( file:doc_doc.filename ) */ T_emit( doc_doc->filename ); /* SELECT one following_doc_sec RELATED BY self->DOC_SEC[R2306.follows] */ following_doc_sec = ( 0 != self ) ? self->DOC_SEC_R2306_follows : 0; /* IF ( not_empty following_doc_sec ) */ if ( ( 0 != following_doc_sec ) ) { /* following_doc_sec.render( doc_doc:doc_doc ) */ ooaofooa_DOC_SEC_op_render( following_doc_sec, doc_doc ); } }
/* * Domain Function: setup */ void sudoku_setup( void ) { sudoku_SEQUENCE * sequence; /* SELECT any sequence FROM INSTANCES OF SEQUENCE */ sequence = (sudoku_SEQUENCE *) Escher_SetGetAny( &pG_sudoku_SEQUENCE_extent.active ); /* IF ( empty sequence ) */ if ( ( 0 == sequence ) ) { i_t i;sudoku_DIGIT * digit;Escher_ObjectSet_s rows_space; Escher_ObjectSet_s * rows = &rows_space; /* rows (ROW) */sudoku_ROW * row;Escher_ObjectSet_s cells_space; Escher_ObjectSet_s * cells = &cells_space; /* cells (CELL) */sudoku_CELL * cell; Escher_InitSet( rows );Escher_InitSet( cells ); /* ASSIGN i = NVS::space_used() */ i = NVS_space_used(); /* IF ( ( i < 100 ) ) */ if ( ( i < 100 ) ) { /* ASSIGN i = NVS::format() */ i = NVS_format(); /* IF ( ( i != 0 ) ) */ if ( ( i != 0 ) ) { /* LOG::LogFailure( message:'Error formatting the NVS.' ) */ LOG_LogFailure( "Error formatting the NVS." ); } } /* LOG::LogInfo( message:'Did not find any PEI data, initializing NVS' ) */ LOG_LogInfo( "Did not find any PEI data, initializing NVS" ); /* ASSIGN i = NVS::version(first:1, second:2) */ i = NVS_version( 1, 2 ); /* ASSIGN i = NVS::checksum(first:1, second:2) */ i = NVS_checksum( 1, 2 ); /* ASSIGN i = 9 */ i = 9; /* WHILE ( ( 0 < i ) ) */ while ( ( 0 < i ) ) { sudoku_DIGIT * digit; /* CREATE OBJECT INSTANCE digit OF DIGIT */ digit = (sudoku_DIGIT *) Escher_CreateInstance( sudoku_DOMAIN_ID, sudoku_DIGIT_CLASS_NUMBER ); /* ASSIGN digit.value = i */ digit->value = i; /* ASSIGN i = ( i - 1 ) */ i = ( i - 1 ); } /* CREATE OBJECT INSTANCE digit OF DIGIT */ digit = (sudoku_DIGIT *) Escher_CreateInstance( sudoku_DOMAIN_ID, sudoku_DIGIT_CLASS_NUMBER ); /* ASSIGN digit.value = 0 */ digit->value = 0; /* ASSIGN i = 9 */ i = 9; /* WHILE ( ( 0 < i ) ) */ while ( ( 0 < i ) ) { sudoku_ROW * row;sudoku_COLUMN * column;sudoku_BOX * box; /* CREATE OBJECT INSTANCE sequence OF SEQUENCE */ sequence = (sudoku_SEQUENCE *) Escher_CreateInstance( sudoku_DOMAIN_ID, sudoku_SEQUENCE_CLASS_NUMBER ); /* ASSIGN sequence.solved = FALSE */ sequence->solved = FALSE; /* ASSIGN sequence.requests = 0 */ sequence->requests = 0; /* CREATE OBJECT INSTANCE row OF ROW */ row = (sudoku_ROW *) Escher_CreateInstance( sudoku_DOMAIN_ID, sudoku_ROW_CLASS_NUMBER ); /* ASSIGN row.number = i */ row->number = i; /* RELATE row TO sequence ACROSS R1 */ sudoku_ROW_R1_Link( sequence, row ); /* CREATE OBJECT INSTANCE sequence OF SEQUENCE */ sequence = (sudoku_SEQUENCE *) Escher_CreateInstance( sudoku_DOMAIN_ID, sudoku_SEQUENCE_CLASS_NUMBER ); /* ASSIGN sequence.solved = FALSE */ sequence->solved = FALSE; /* ASSIGN sequence.requests = 0 */ sequence->requests = 0; /* CREATE OBJECT INSTANCE column OF COLUMN */ column = (sudoku_COLUMN *) Escher_CreateInstance( sudoku_DOMAIN_ID, sudoku_COLUMN_CLASS_NUMBER ); /* ASSIGN column.number = i */ column->number = i; /* RELATE column TO sequence ACROSS R1 */ sudoku_COLUMN_R1_Link( sequence, column ); /* CREATE OBJECT INSTANCE sequence OF SEQUENCE */ sequence = (sudoku_SEQUENCE *) Escher_CreateInstance( sudoku_DOMAIN_ID, sudoku_SEQUENCE_CLASS_NUMBER ); /* ASSIGN sequence.solved = FALSE */ sequence->solved = FALSE; /* ASSIGN sequence.requests = 0 */ sequence->requests = 0; /* CREATE OBJECT INSTANCE box OF BOX */ box = (sudoku_BOX *) Escher_CreateInstance( sudoku_DOMAIN_ID, sudoku_BOX_CLASS_NUMBER ); /* ASSIGN box.number = i */ box->number = i; /* RELATE box TO sequence ACROSS R1 */ sudoku_BOX_R1_Link( sequence, box ); /* ASSIGN i = ( i - 1 ) */ i = ( i - 1 ); } /* SELECT many rows FROM INSTANCES OF ROW */ Escher_CopySet( rows, &pG_sudoku_ROW_extent.active ); /* FOR EACH row IN rows */ { Escher_Iterator_s iter1; sudoku_ROW * sudoku_ROWiter1; Escher_IteratorReset( &iter1, rows ); while ( (sudoku_ROWiter1 = (sudoku_ROW *)Escher_IteratorNext( &iter1 )) != 0 ) { row = sudoku_ROWiter1; { Escher_ObjectSet_s columns_space; Escher_ObjectSet_s * columns = &columns_space; /* columns (COLUMN) */sudoku_COLUMN * column; Escher_InitSet( columns ); /* SELECT many columns FROM INSTANCES OF COLUMN */ Escher_CopySet( columns, &pG_sudoku_COLUMN_extent.active ); /* FOR EACH column IN columns */ { Escher_Iterator_s iter3; sudoku_COLUMN * sudoku_COLUMNiter3; Escher_IteratorReset( &iter3, columns ); while ( (sudoku_COLUMNiter3 = (sudoku_COLUMN *)Escher_IteratorNext( &iter3 )) != 0 ) { column = sudoku_COLUMNiter3; { sudoku_CELL * cell;Escher_ObjectSet_s digits_space; Escher_ObjectSet_s * digits = &digits_space; /* digit (DIGIT) */ Escher_InitSet( digits ); /* CREATE OBJECT INSTANCE cell OF CELL */ cell = (sudoku_CELL *) Escher_CreateInstance( sudoku_DOMAIN_ID, sudoku_CELL_CLASS_NUMBER ); /* SELECT any digit FROM INSTANCES OF DIGIT WHERE ( SELECTED.value == 0 ) */ digit = 0; { sudoku_DIGIT * selected; Escher_Iterator_s iter30_DIGIT; Escher_IteratorReset( &iter30_DIGIT, &pG_sudoku_DIGIT_extent.active ); while ( (selected = (sudoku_DIGIT *) Escher_IteratorNext( &iter30_DIGIT )) != 0 ) { if ( ( selected->value == 0 ) ) { digit = selected; break; } } } /* RELATE cell TO digit ACROSS R9 */ sudoku_CELL_R9_Link( digit, cell ); /* RELATE cell TO row ACROSS R2 */ sudoku_CELL_R2_Link( row, cell ); /* RELATE cell TO column ACROSS R3 */ sudoku_CELL_R3_Link( column, cell ); /* SELECT many digits FROM INSTANCES OF DIGIT WHERE ( SELECTED.value != 0 ) */ Escher_ClearSet( digits ); { sudoku_DIGIT * selected; Escher_Iterator_s iter31_DIGIT; Escher_IteratorReset( &iter31_DIGIT, &pG_sudoku_DIGIT_extent.active ); while ( (selected = (sudoku_DIGIT *) Escher_IteratorNext( &iter31_DIGIT )) != 0 ) { if ( ( selected->value != 0 ) ) { Escher_SetInsertElement( digits, selected ); } } } /* FOR EACH digit IN digits */ { Escher_Iterator_s iter4; sudoku_DIGIT * sudoku_DIGITiter4; Escher_IteratorReset( &iter4, digits ); while ( (sudoku_DIGITiter4 = (sudoku_DIGIT *)Escher_IteratorNext( &iter4 )) != 0 ) { digit = sudoku_DIGITiter4; { sudoku_ELIGIBLE * eligible; /* CREATE OBJECT INSTANCE eligible OF ELIGIBLE */ eligible = (sudoku_ELIGIBLE *) Escher_CreateInstance( sudoku_DOMAIN_ID, sudoku_ELIGIBLE_CLASS_NUMBER ); /* RELATE digit TO cell ACROSS R8 USING eligible */ sudoku_ELIGIBLE_R8_Link( cell, digit, eligible ); }} } Escher_ClearSet( digits ); /* Clear set: digit */ }} } Escher_ClearSet( columns ); }} } /* SELECT many cells FROM INSTANCES OF CELL */ Escher_CopySet( cells, &pG_sudoku_CELL_extent.active ); /* FOR EACH cell IN cells */ { Escher_Iterator_s iter2; sudoku_CELL * sudoku_CELLiter2; Escher_IteratorReset( &iter2, cells ); while ( (sudoku_CELLiter2 = (sudoku_CELL *)Escher_IteratorNext( &iter2 )) != 0 ) { cell = sudoku_CELLiter2; { /* IF ( ( ( cell.row_number <= 3 ) and ( cell.column_number <= 3 ) ) ) */ if ( ( ( cell->row_number <= 3 ) && ( cell->column_number <= 3 ) ) ) { sudoku_BOX * box; /* SELECT any box FROM INSTANCES OF BOX WHERE ( SELECTED.number == 1 ) */ box = 0; { sudoku_BOX * selected; Escher_Iterator_s iter32_BOX; Escher_IteratorReset( &iter32_BOX, &pG_sudoku_BOX_extent.active ); while ( (selected = (sudoku_BOX *) Escher_IteratorNext( &iter32_BOX )) != 0 ) { if ( ( selected->number == 1 ) ) { box = selected; break; } } } /* RELATE cell TO box ACROSS R4 */ sudoku_CELL_R4_Link( box, cell ); } else if ( ( ( cell->row_number <= 3 ) && ( ( 4 <= cell->column_number ) && ( cell->column_number <= 6 ) ) ) ) { sudoku_BOX * box; /* SELECT any box FROM INSTANCES OF BOX WHERE ( SELECTED.number == 2 ) */ box = 0; { sudoku_BOX * selected; Escher_Iterator_s iter33_BOX; Escher_IteratorReset( &iter33_BOX, &pG_sudoku_BOX_extent.active ); while ( (selected = (sudoku_BOX *) Escher_IteratorNext( &iter33_BOX )) != 0 ) { if ( ( selected->number == 2 ) ) { box = selected; break; } } } /* RELATE cell TO box ACROSS R4 */ sudoku_CELL_R4_Link( box, cell ); } else if ( ( ( cell->row_number <= 3 ) && ( 7 <= cell->column_number ) ) ) { sudoku_BOX * box; /* SELECT any box FROM INSTANCES OF BOX WHERE ( SELECTED.number == 3 ) */ box = 0; { sudoku_BOX * selected; Escher_Iterator_s iter34_BOX; Escher_IteratorReset( &iter34_BOX, &pG_sudoku_BOX_extent.active ); while ( (selected = (sudoku_BOX *) Escher_IteratorNext( &iter34_BOX )) != 0 ) { if ( ( selected->number == 3 ) ) { box = selected; break; } } } /* RELATE cell TO box ACROSS R4 */ sudoku_CELL_R4_Link( box, cell ); } else if ( ( ( ( 4 <= cell->row_number ) && ( cell->row_number <= 6 ) ) && ( cell->column_number <= 3 ) ) ) { sudoku_BOX * box; /* SELECT any box FROM INSTANCES OF BOX WHERE ( SELECTED.number == 4 ) */ box = 0; { sudoku_BOX * selected; Escher_Iterator_s iter35_BOX; Escher_IteratorReset( &iter35_BOX, &pG_sudoku_BOX_extent.active ); while ( (selected = (sudoku_BOX *) Escher_IteratorNext( &iter35_BOX )) != 0 ) { if ( ( selected->number == 4 ) ) { box = selected; break; } } } /* RELATE cell TO box ACROSS R4 */ sudoku_CELL_R4_Link( box, cell ); } else if ( ( ( ( 4 <= cell->row_number ) && ( cell->row_number <= 6 ) ) && ( ( 4 <= cell->column_number ) && ( cell->column_number <= 6 ) ) ) ) { sudoku_BOX * box; /* SELECT any box FROM INSTANCES OF BOX WHERE ( SELECTED.number == 5 ) */ box = 0; { sudoku_BOX * selected; Escher_Iterator_s iter36_BOX; Escher_IteratorReset( &iter36_BOX, &pG_sudoku_BOX_extent.active ); while ( (selected = (sudoku_BOX *) Escher_IteratorNext( &iter36_BOX )) != 0 ) { if ( ( selected->number == 5 ) ) { box = selected; break; } } } /* RELATE cell TO box ACROSS R4 */ sudoku_CELL_R4_Link( box, cell ); } else if ( ( ( ( 4 <= cell->row_number ) && ( cell->row_number <= 6 ) ) && ( 7 <= cell->column_number ) ) ) { sudoku_BOX * box; /* SELECT any box FROM INSTANCES OF BOX WHERE ( SELECTED.number == 6 ) */ box = 0; { sudoku_BOX * selected; Escher_Iterator_s iter37_BOX; Escher_IteratorReset( &iter37_BOX, &pG_sudoku_BOX_extent.active ); while ( (selected = (sudoku_BOX *) Escher_IteratorNext( &iter37_BOX )) != 0 ) { if ( ( selected->number == 6 ) ) { box = selected; break; } } } /* RELATE cell TO box ACROSS R4 */ sudoku_CELL_R4_Link( box, cell ); } else if ( ( ( 7 <= cell->row_number ) && ( cell->column_number <= 3 ) ) ) { sudoku_BOX * box; /* SELECT any box FROM INSTANCES OF BOX WHERE ( SELECTED.number == 7 ) */ box = 0; { sudoku_BOX * selected; Escher_Iterator_s iter38_BOX; Escher_IteratorReset( &iter38_BOX, &pG_sudoku_BOX_extent.active ); while ( (selected = (sudoku_BOX *) Escher_IteratorNext( &iter38_BOX )) != 0 ) { if ( ( selected->number == 7 ) ) { box = selected; break; } } } /* RELATE cell TO box ACROSS R4 */ sudoku_CELL_R4_Link( box, cell ); } else if ( ( ( 7 <= cell->row_number ) && ( ( 4 <= cell->column_number ) && ( cell->column_number <= 6 ) ) ) ) { sudoku_BOX * box; /* SELECT any box FROM INSTANCES OF BOX WHERE ( SELECTED.number == 8 ) */ box = 0; { sudoku_BOX * selected; Escher_Iterator_s iter39_BOX; Escher_IteratorReset( &iter39_BOX, &pG_sudoku_BOX_extent.active ); while ( (selected = (sudoku_BOX *) Escher_IteratorNext( &iter39_BOX )) != 0 ) { if ( ( selected->number == 8 ) ) { box = selected; break; } } } /* RELATE cell TO box ACROSS R4 */ sudoku_CELL_R4_Link( box, cell ); } else if ( ( ( 7 <= cell->row_number ) && ( 7 <= cell->column_number ) ) ) { sudoku_BOX * box; /* SELECT any box FROM INSTANCES OF BOX WHERE ( SELECTED.number == 9 ) */ box = 0; { sudoku_BOX * selected; Escher_Iterator_s iter40_BOX; Escher_IteratorReset( &iter40_BOX, &pG_sudoku_BOX_extent.active ); while ( (selected = (sudoku_BOX *) Escher_IteratorNext( &iter40_BOX )) != 0 ) { if ( ( selected->number == 9 ) ) { box = selected; break; } } } /* RELATE cell TO box ACROSS R4 */ sudoku_CELL_R4_Link( box, cell ); } }} } Escher_ClearSet( rows );Escher_ClearSet( cells ); } else { /* LOG::LogInfo( message:'PEI data found.' ) */ LOG_LogInfo( "PEI data found." ); } }