#![warn(missing_docs, rustdoc::broken_intra_doc_links)]
mod analysis;
mod ast;
mod error;
mod metadata;
mod parser;
mod utils;
pub use analysis::{
IcuAnalysis, IcuArgument, IcuArgumentKind, IcuCompatibilityOptions, IcuCompatibilityReport,
IcuDiagnostic, IcuDiagnosticSeverity, IcuFormatter, IcuFormatterSupport, IcuPluralSummary,
IcuSelectSummary, IcuStyleKind, IcuTagSummary, analyze_icu, compare_icu_messages,
extract_argument_names, extract_tag_names, validate_icu_formatter_support,
};
pub use ast::{IcuMessage, IcuNode, IcuOption, IcuPluralKind};
pub use error::{IcuErrorKind, IcuParseError, IcuPosition};
pub use metadata::{
MessageArgumentFormatMetadata, MessageArgumentKind, MessageArgumentMetadata,
MessageArgumentMetadataInput, MessageFormatStyleKind, MessageMetadata,
MessageMetadataDiagnostic, MessageMetadataInput, MessageMetadataValidationReport,
MessageOriginMetadata, MessageSelectorKind, MessageSelectorMetadata,
derive_message_metadata_from_icu, normalize_message_metadata, validate_message_metadata,
};
pub use parser::{IcuParserOptions, parse_icu, parse_icu_with_options};
pub use utils::{
extract_variables, has_plural, has_select, has_selectordinal, has_tag, validate_icu,
};