Skip to main content

Crate media_query_parse

Crate media_query_parse 

Source
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 by crate::parser.
parser
Recursive-descent parser for the Media Queries Level 4 grammar, built on top of the crate::tokenizer::Tokenizer from phase 02.
tokenizer
CSS tokenizer, implementing CSS Syntax Module Level 3 §3 (Tokenizing and Parsing CSS) and §4 (Tokenization).