Expand description
A pure-Rust parser for the CSS Media Queries grammar.
Tokenizer (CSS Syntax Level 3) plus a Media Queries Level 4
grammar/AST/parser, including the <mf-range> comparison syntax.
See plan/ for the roadmap.
§Example
use media_query_parse::{parse_media_query, parse_media_query_list};
// A single, syntactically valid media query.
assert!(parse_media_query("screen and (min-width: 400px)").is_ok());
// An invalid media query reports a `ParseError` instead of panicking:
// `only` requires a following `<media-type>`, which is missing here.
assert!(parse_media_query("only").is_err());
// `parse_media_query_list` splits a comma-separated list and parses
// each entry independently, returning one `Result` per entry.
let results = parse_media_query_list("screen, only");
assert!(results[0].is_ok());
assert!(results[1].is_err());Re-exports§
pub use ast::GeneralEnclosed;pub use ast::MediaCondition;pub use ast::MediaConditionWithoutOr;pub use ast::MediaFeature;pub use ast::MediaInParens;pub use ast::MediaModifier;pub use ast::MediaQuery;pub use ast::MediaQueryList;pub use ast::MediaType;pub use ast::MfComparison;pub use ast::MfName;pub use ast::MfRange;pub use ast::MfRangeDirection;pub use ast::MfValue;pub use parser::ParseError;pub use parser::parse_media_query;pub use parser::parse_media_query_list;
Modules§
- ast
- AST types for the Media Queries Level 4 grammar (
<media-query-list>and below), as parsed bycrate::parser. - parser
- Recursive-descent parser for the Media Queries Level 4 grammar,
built on top of the
crate::tokenizer::Tokenizerfrom phase 02. - tokenizer
- CSS tokenizer, implementing CSS Syntax Module Level 3 §3 (Tokenizing and Parsing CSS) and §4 (Tokenization).