nl_tokens: A GedcomX Range . It will place a Singel date at this . start and this . end as well as a Duration at this . duration .
pl_tokens: function Range ( str ) { var range = str ; // If range starts with A, its approximate if ( range . charAt ( 0 ) == 'A' ) { this . _approximate = true ; range = str . substr ( 1 ) ; } var parts = range . split ( '/' ) ; if ( parts . length != 2 || ( ! parts [ 0 ] && ! parts [ 1 ] ) ) { throw new Error ( 'Invalid Date Range' ) ; } if ( parts [ 0 ] ) { try { this . start = new Simple ( parts [ 0 ] ) ; } catch ( e ) { throw new Error ( e . message + ' in Range Start Date' ) ; } } if ( parts [ 1 ] ) { if ( parts [ 1 ] . charAt ( 0 ) == 'P' ) { if ( ! this . start ) { throw new Error ( 'A Range may not end with a duration if missing a start date' ) ; } try { this . duration = new Duration ( parts [ 1 ] ) ; } catch ( e ) { throw new Error ( e . message + ' in Range End Date' ) ; } // Use duration and calculate end date this . end = GedUtil . addDuration ( this . <mask> , this . duration ) ; } else { try { this . end = new Simple ( parts [ 1 ] ) ; } catch ( e ) { throw new Error ( e . message + ' in Range End Date' ) ; } if ( this . start ) { this . duration = GedUtil . getDuration ( this . start , this . end ) ; } } } }