| 40 |
GEDCOMParser::DateManagement::Range * _date_range; |
GEDCOMParser::DateManagement::Range * _date_range; |
| 41 |
GEDCOMParser::DateManagement::DatePhrase * _date_phrase; |
GEDCOMParser::DateManagement::DatePhrase * _date_phrase; |
| 42 |
std::string _parsed_string; |
std::string _parsed_string; |
| 43 |
|
int error_cpt; |
| 44 |
|
|
| 45 |
%} |
%} |
| 46 |
|
|
| 100 |
%token ABT |
%token ABT |
| 101 |
%token CAL |
%token CAL |
| 102 |
%token EST |
%token EST |
|
%token BC |
|
| 103 |
%token SLASH |
%token SLASH |
| 104 |
|
%token BC |
| 105 |
%token SPACE |
%token SPACE |
| 106 |
%token NUMBER |
%token NUMBER |
| 107 |
%token DATEPHRASE |
%token DATEPHRASE |
| 152 |
} |
} |
| 153 |
; |
; |
| 154 |
|
|
| 155 |
date: |
date: |
| 156 |
date_greg |
SPACE date |
| 157 |
|
| SPACE date SPACE |
| 158 |
|
| date_greg |
| 159 |
| CAL_GREGORIAN date_greg |
| CAL_GREGORIAN date_greg |
| 160 |
| CAL_JULIAN date_juln |
| CAL_JULIAN date_juln |
| 161 |
{ |
{ |
| 200 |
_date->setYear($1); |
_date->setYear($1); |
| 201 |
} |
} |
| 202 |
| date_greg SLASH NUMBER // TO DO : ACTION |
| date_greg SLASH NUMBER // TO DO : ACTION |
| 203 |
| date_greg BC // TO DO : ACTION |
| date_greg BC |
| 204 |
|
{ |
| 205 |
|
if (_date == 0) |
| 206 |
|
_date = new GEDCOMParser::DateManagement::Date(); |
| 207 |
|
_date->setBeforeChrist(true); |
| 208 |
|
} |
| 209 |
; |
; |
| 210 |
|
|
| 211 |
month: |
month: |
| 645 |
; |
; |
| 646 |
|
|
| 647 |
date_period: |
date_period: |
| 648 |
date_period SPACE TO date |
SPACE date_period |
| 649 |
|
| date_period SPACE TO date |
| 650 |
{ |
{ |
| 651 |
if (_date_period == 0) |
if (_date_period == 0) |
| 652 |
{ |
{ |
| 676 |
; |
; |
| 677 |
|
|
| 678 |
date_range: |
date_range: |
| 679 |
date_range AND date |
SPACE date_range |
| 680 |
|
| date_range AND date |
| 681 |
{ |
{ |
| 682 |
if (_date_range == 0) |
if (_date_range == 0) |
| 683 |
{ |
{ |
| 738 |
|
|
| 739 |
void datevalue_error(char * const s) |
void datevalue_error(char * const s) |
| 740 |
{ |
{ |
| 741 |
std::cerr << s << " : " << _parsed_string << std::endl; |
std::cerr << s << " (DateManagement parsing) : " << _parsed_string << std::endl; |
|
|
|
| 742 |
return ; |
return ; |
| 743 |
} |
} |
| 744 |
|
|
| 745 |
void datevalue_runparse(std::string const &s, GEDCOMParser::DateManagement::DateValue * date_value, int debug = 0) |
void datevalue_runparse(std::string const &s, GEDCOMParser::DateManagement::DateValue * date_value, int debug = 0) |
| 746 |
{ |
{ |
| 747 |
_parsed_string = s; |
_parsed_string = s; |
| 748 |
// yydebug = debug; |
yydebug = debug; |
| 749 |
yydebug = 1; |
error_cpt = 0; |
| 750 |
_date = 0; |
_date = 0; |
| 751 |
_date_period = 0; |
_date_period = 0; |
| 752 |
_date_range = 0; |
_date_range = 0; |
| 758 |
delete _date_period; _date_period = 0; |
delete _date_period; _date_period = 0; |
| 759 |
_date_range = 0; |
_date_range = 0; |
| 760 |
_date_phrase = 0; |
_date_phrase = 0; |
| 761 |
|
if (error_cpt > 0) |
| 762 |
|
{ |
| 763 |
|
_date_value->setParseError(true); |
| 764 |
|
} |
| 765 |
|
else |
| 766 |
|
{ |
| 767 |
|
_date_value->setParseError(false); |
| 768 |
|
} |
| 769 |
|
error_cpt = 0; |
| 770 |
|
return; |
| 771 |
} |
} |