mirror of
https://github.com/servo/servo.git
synced 2025-08-29 00:58:20 +01:00
Use the ParserContext along with Parser in the parse function
This commit is contained in:
parent
c4f87f451f
commit
dee1a65a69
30 changed files with 318 additions and 285 deletions
|
@ -84,7 +84,8 @@ pub mod shorthands {
|
|||
use values::specified;
|
||||
|
||||
pub fn parse_four_sides<F, T>(input: &mut Parser, parse_one: F) -> Result<(T, T, T, T), ()>
|
||||
where F: Fn(&mut Parser) -> Result<T, ()>, F: Copy, T: Clone {
|
||||
where F: Fn(&mut Parser) -> Result<T, ()>, T: Clone
|
||||
{
|
||||
// zero or more than four values is invalid.
|
||||
// one value sets them all
|
||||
// two values set (top, bottom) and (left, right)
|
||||
|
@ -94,7 +95,7 @@ pub mod shorthands {
|
|||
let right;
|
||||
let bottom;
|
||||
let left;
|
||||
match input.try(parse_one) {
|
||||
match input.try(|i| parse_one(i)) {
|
||||
Err(()) => {
|
||||
right = top.clone();
|
||||
bottom = top.clone();
|
||||
|
@ -102,14 +103,14 @@ pub mod shorthands {
|
|||
}
|
||||
Ok(value) => {
|
||||
right = value;
|
||||
match input.try(parse_one) {
|
||||
match input.try(|i| parse_one(i)) {
|
||||
Err(()) => {
|
||||
bottom = top.clone();
|
||||
left = right.clone();
|
||||
}
|
||||
Ok(value) => {
|
||||
bottom = value;
|
||||
match input.try(parse_one) {
|
||||
match input.try(|i| parse_one(i)) {
|
||||
Err(()) => {
|
||||
left = right.clone();
|
||||
}
|
||||
|
@ -365,7 +366,7 @@ pub enum CSSWideKeyword {
|
|||
}
|
||||
|
||||
impl Parse for CSSWideKeyword {
|
||||
fn parse(input: &mut Parser) -> Result<Self, ()> {
|
||||
fn parse(_context: &ParserContext, input: &mut Parser) -> Result<Self, ()> {
|
||||
match_ignore_ascii_case! { try!(input.expect_ident()),
|
||||
"initial" => Ok(CSSWideKeyword::InitialKeyword),
|
||||
"inherit" => Ok(CSSWideKeyword::InheritKeyword),
|
||||
|
@ -753,11 +754,11 @@ impl PropertyDeclaration {
|
|||
in_keyframe_block: bool)
|
||||
-> PropertyDeclarationParseResult {
|
||||
if let Ok(name) = ::custom_properties::parse_name(name) {
|
||||
let value = match input.try(CSSWideKeyword::parse) {
|
||||
let value = match input.try(|i| CSSWideKeyword::parse(context, i)) {
|
||||
Ok(CSSWideKeyword::UnsetKeyword) | // Custom properties are alawys inherited
|
||||
Ok(CSSWideKeyword::InheritKeyword) => DeclaredValue::Inherit,
|
||||
Ok(CSSWideKeyword::InitialKeyword) => DeclaredValue::Initial,
|
||||
Err(()) => match ::custom_properties::SpecifiedValue::parse(input) {
|
||||
Err(()) => match ::custom_properties::SpecifiedValue::parse(context, input) {
|
||||
Ok(value) => DeclaredValue::Value(value),
|
||||
Err(()) => return PropertyDeclarationParseResult::InvalidValue,
|
||||
}
|
||||
|
@ -815,7 +816,7 @@ impl PropertyDeclaration {
|
|||
return PropertyDeclarationParseResult::ExperimentalProperty
|
||||
}
|
||||
% endif
|
||||
match input.try(CSSWideKeyword::parse) {
|
||||
match input.try(|i| CSSWideKeyword::parse(context, i)) {
|
||||
Ok(CSSWideKeyword::InheritKeyword) => {
|
||||
% for sub_property in shorthand.sub_properties:
|
||||
result_list.push(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue