/[ghosts]/ghosts/gedcomparser/src/GEDCOMParser/yaccparser.yxx
ViewVC logotype

Diff of /ghosts/gedcomparser/src/GEDCOMParser/yaccparser.yxx

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by cpcp, Sun Jan 26 21:15:21 2003 UTC revision 1.5 by cpcp, Thu Sep 25 19:27:11 2003 UTC
# Line 113  int yylex(void); Line 113  int yylex(void);
113    void manage_add_multimedia_link(int);    void manage_add_multimedia_link(int);
114    void manage_set_copr(int, char * const);    void manage_set_copr(int, char * const);
115    void manage_set_date(int, char * const);    void manage_set_date(int, char * const);
116      void manage_set_event_even(int, char * const);
117    void manage_set_famc_xref(int);    void manage_set_famc_xref(int);
118    int get_parent_level(int);    int get_parent_level(int);
119    
# Line 481  source_record_data: Line 482  source_record_data:
482    
483  source_record_data_event:  source_record_data_event:
484          EVEN {          EVEN {
485            SourceRecord::Data::Event * ptr = _factory->createSourceRecord_Data_Event();            manage_set_event_even($1.level, $1.value);
           set_item_by_level($1.level, Item::e_SourceRecord_Data_Event, ptr);  
           SOURCERECORDDATAEVENTITEM($1.level)->setEvent($1.value);  
486          }                }      
487          | source_record_data_event DATE {          | source_record_data_event DATE {
488            SOURCERECORDDATAEVENTITEM($1.level)->setDate($2.value);            SOURCERECORDDATAEVENTITEM($1.level)->setDate($2.value);
# Line 641  citation_src_pointer: Line 640  citation_src_pointer:
640            SOURCECITATIONITEM($1.level)->setEventRole($3.value);            SOURCECITATIONITEM($1.level)->setEventRole($3.value);
641          }          }
642          | citation_src_pointer EVEN {          | citation_src_pointer EVEN {
643            SOURCECITATIONITEM($1.level)->setEvent($2.value);            manage_set_event_even($2.level, $2.value);
644          }          }
645          | citation_src_pointer data_citation          | citation_src_pointer data_citation
646          | citation_src_pointer QUAY {          | citation_src_pointer QUAY {
# Line 1064  family_event: Line 1063  family_event:
1063                        
1064          }          }
1065          | EVEN {          | EVEN {
1066            FamilyEvent * ptr = _factory->createFamilyEvent();            manage_set_event_even($1.level, "");    
           ptr->setType(FamilyEvent::e_Even);  
           set_item_by_level($1.level, Item::e_FamilyEvent, ptr);  
             
1067          }          }
1068          | family_event event_details {          | family_event event_details {
1069            if (items_by_level[$2.level].top().getType() == Item::e_Event)            if (items_by_level[$2.level].top().getType() == Item::e_Event)
# Line 1217  individual_event: Line 1213  individual_event:
1213                        
1214          }          }
1215          | EVEN {          | EVEN {
1216            IndividualEvent * ptr = _factory->createIndividualEvent();            manage_set_event_even($1.level, "");
           ptr->setType(IndividualEvent::e_Even);  
           set_item_by_level($1.level, Item::e_IndividualEvent, ptr);  
             
1217          }          }
1218          | individual_event event_details {          | individual_event event_details {
1219          if (items_by_level[$2.level].top().getType() == Item::e_Event)          if (items_by_level[$2.level].top().getType() == Item::e_Event)
# Line 1610  void manage_set_famc_xref(int level) Line 1603  void manage_set_famc_xref(int level)
1603      }      }
1604  }  }
1605    
1606    void manage_set_event_even(int level, char * const value)
1607    {
1608      if (level != 0)
1609        {
1610          Item parent_item =  items_by_level[level - 1].top();
1611          switch(parent_item.getType())
1612            {
1613            case Item::e_SourceCitation:
1614              {
1615                ((SourceCitation *)parent_item.getValue())->setEvent(value);
1616                break;
1617              }
1618            case Item::e_IndividualRecord:
1619              {
1620                IndividualEvent * ptr = _factory->createIndividualEvent();
1621                ptr->setType(IndividualEvent::e_Even);
1622                set_item_by_level(level, Item::e_IndividualEvent, ptr);
1623                break;
1624              }
1625            case Item::e_FamilyRecord:
1626              {
1627                FamilyEvent * ptr = _factory->createFamilyEvent();
1628                ptr->setType(FamilyEvent::e_Even);
1629                set_item_by_level(level, Item::e_FamilyEvent, ptr);
1630                break;
1631              }
1632            case Item::e_SourceRecord_Data:
1633              {
1634                SourceRecord::Data::Event * ptr = _factory->createSourceRecord_Data_Event();
1635                set_item_by_level(level, Item::e_SourceRecord_Data_Event, ptr);
1636                SOURCERECORDDATAEVENTITEM(level)->setEvent(value);
1637                break;
1638              }
1639            default:
1640              {
1641                UNEXPECTED_TOKEN_MSG("EVEN", "[ e_SourceCitation | e_IndividualRecord | e_FamilyRecord | e_SourceRecord_Data ]");
1642              }
1643            }
1644        }
1645    }
1646    
1647  void manage_set_date(int level, char * const value)  void manage_set_date(int level, char * const value)
1648  {  {

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26