use crate::{
ast::*,
parser::{combinator::*, token::*},
};
use nom::Parser;
pub fn reference_section(input: &str) -> ParseResult<Vec<ReferenceEntry>> {
tuple_((tag_("REFERENCE;"), reference_list, tag_("ENDSEC;")))
.map(|(_start, list, _end)| list)
.parse(input)
}
pub fn reference_list(input: &str) -> ParseResult<Vec<ReferenceEntry>> {
many0_(reference).parse(input)
}
pub fn reference(input: &str) -> ParseResult<ReferenceEntry> {
tuple_((lhs_occurrence_name, char_('='), resource, char_(';')))
.map(|(name, _def, resource, _semicolon)| ReferenceEntry { name, resource })
.parse(input)
}