Building a Parser: Productions 

physical:          number street rural_detail(?) suburb_town(?)
number:            careof_detail(?) address_prefix(?) street_number
address_prefix:    unit(?) floor_detail(?) building_detail(?)
                 | floor_detail(?) unit(?) building_detail(?)
floor_detail:      floor sep(?)
careof_detail:     careof_prefix careof sep(?)
unit:              unit_type unit_identifier sep(?) 
                 | unit_detail 
                 | unit_identifier sep
unit_detail:       unit_identifier /[-\/]/ sep(?)