use crate::compiler::identity::CompilerVersion;
pub(super) fn parse_version(lines: &[&str]) -> Option<CompilerVersion> {
let first = lines.first()?;
let after_paren = first.find(')').map(|i| &first[i + 1..]);
for segment in after_paren.into_iter().chain(std::iter::once(*first)) {
for tok in segment.split_whitespace() {
let cleaned = tok.trim_matches(|c: char| matches!(c, '(' | ')' | ','));
if !cleaned.contains('.') {
continue;
}
if let Some(v) = CompilerVersion::parse_with_suffix(cleaned) {
return Some(v);
}
}
}
None
}