mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Import ast::ComponentValue more consistently.
This commit is contained in:
parent
3e283da8b1
commit
3be587606f
7 changed files with 21 additions and 13 deletions
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use cssparser::ast::*;
|
||||
use cssparser::ast::ComponentValue::*;
|
||||
use cssparser::parse_declaration_list;
|
||||
use errors::{ErrorLoggerIterator, log_css_error};
|
||||
use std::ascii::AsciiExt;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
use std::ascii::AsciiExt;
|
||||
use cssparser::parse_rule_list;
|
||||
use cssparser::ast::*;
|
||||
use cssparser::ast::ComponentValue::*;
|
||||
|
||||
use errors::{ErrorLoggerIterator, log_css_error};
|
||||
use geom::size::TypedSize2D;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use cssparser::ast::*;
|
||||
use cssparser::ast::ComponentValue::*;
|
||||
use std::collections::HashMap;
|
||||
use servo_util::namespace;
|
||||
use errors::log_css_error;
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
|
||||
|
||||
use std::ascii::AsciiExt;
|
||||
use cssparser::ast::{ComponentValue, Ident, Comma, SkipWhitespaceIterable, SkipWhitespaceIterator};
|
||||
use cssparser::ast::{SkipWhitespaceIterable, SkipWhitespaceIterator};
|
||||
use cssparser::ast::ComponentValue::{mod, Ident, Comma};
|
||||
|
||||
|
||||
pub fn one_component_value<'a>(input: &'a [ComponentValue]) -> Result<&'a ComponentValue, ()> {
|
||||
|
|
|
@ -24,7 +24,7 @@ macro_rules! define_css_keyword_enum {
|
|||
impl $name {
|
||||
pub fn parse(component_value: &::cssparser::ast::ComponentValue) -> Result<$name, ()> {
|
||||
match component_value {
|
||||
&::cssparser::ast::Ident(ref value) => {
|
||||
&::cssparser::ast::ComponentValue::Ident(ref value) => {
|
||||
match_ignore_ascii_case! { value:
|
||||
$( $css => Ok($name::$variant) ),+
|
||||
_ => Err(())
|
||||
|
@ -63,8 +63,9 @@ pub mod specified {
|
|||
use std::fmt;
|
||||
use std::fmt::{Formatter, Show};
|
||||
use url::Url;
|
||||
use cssparser::{mod, ast, ToCss, CssStringWriter};
|
||||
use cssparser::{mod, ToCss, CssStringWriter};
|
||||
use cssparser::ast::*;
|
||||
use cssparser::ast::ComponentValue::*;
|
||||
use text_writer::{mod, TextWriter};
|
||||
use parsing_utils::{mod, BufferedIter, ParserIter};
|
||||
use super::{Au, CSSFloat};
|
||||
|
@ -244,7 +245,7 @@ pub mod specified {
|
|||
&Dimension(ref value, ref unit) if negative_ok || value.value >= 0. =>
|
||||
Length::parse_dimension(value.value, unit.as_slice())
|
||||
.map(LengthOrPercentage::Length),
|
||||
&ast::Percentage(ref value) if negative_ok || value.value >= 0. =>
|
||||
&Percentage(ref value) if negative_ok || value.value >= 0. =>
|
||||
Ok(LengthOrPercentage::Percentage(value.value / 100.)),
|
||||
&Number(ref value) if value.value == 0. =>
|
||||
Ok(LengthOrPercentage::Length(Length::Au(Au(0)))),
|
||||
|
@ -289,7 +290,7 @@ pub mod specified {
|
|||
match input {
|
||||
&Dimension(ref value, ref unit) if negative_ok || value.value >= 0. =>
|
||||
Length::parse_dimension(value.value, unit.as_slice()).map(LengthOrPercentageOrAuto::Length),
|
||||
&ast::Percentage(ref value) if negative_ok || value.value >= 0. =>
|
||||
&Percentage(ref value) if negative_ok || value.value >= 0. =>
|
||||
Ok(LengthOrPercentageOrAuto::Percentage(value.value / 100.)),
|
||||
&Number(ref value) if value.value == 0. =>
|
||||
Ok(LengthOrPercentageOrAuto::Length(Length::Au(Au(0)))),
|
||||
|
@ -335,7 +336,7 @@ pub mod specified {
|
|||
match input {
|
||||
&Dimension(ref value, ref unit) if negative_ok || value.value >= 0.
|
||||
=> Length::parse_dimension(value.value, unit.as_slice()).map(LengthOrPercentageOrNone::Length),
|
||||
&ast::Percentage(ref value) if negative_ok || value.value >= 0.
|
||||
&Percentage(ref value) if negative_ok || value.value >= 0.
|
||||
=> Ok(LengthOrPercentageOrNone::Percentage(value.value / 100.)),
|
||||
&Number(ref value) if value.value == 0. => Ok(LengthOrPercentageOrNone::Length(Length::Au(Au(0)))),
|
||||
&Ident(ref value) if value.as_slice().eq_ignore_ascii_case("none") => Ok(LengthOrPercentageOrNone::None),
|
||||
|
@ -369,7 +370,7 @@ pub mod specified {
|
|||
match input {
|
||||
&Dimension(ref value, ref unit) =>
|
||||
Length::parse_dimension(value.value, unit.as_slice()).map(PositionComponent::Length),
|
||||
&ast::Percentage(ref value) => Ok(PositionComponent::Percentage(value.value / 100.)),
|
||||
&Percentage(ref value) => Ok(PositionComponent::Percentage(value.value / 100.)),
|
||||
&Number(ref value) if value.value == 0. => Ok(PositionComponent::Length(Length::Au(Au(0)))),
|
||||
&Ident(ref value) => {
|
||||
if value.as_slice().eq_ignore_ascii_case("center") { Ok(PositionComponent::Center) }
|
||||
|
@ -464,11 +465,11 @@ pub mod specified {
|
|||
pub fn from_component_value(component_value: &ComponentValue, base_url: &Url)
|
||||
-> Result<Image,()> {
|
||||
match component_value {
|
||||
&ast::URL(ref url) => {
|
||||
&URL(ref url) => {
|
||||
let image_url = super::parse_url(url.as_slice(), base_url);
|
||||
Ok(Image::Url(image_url))
|
||||
},
|
||||
&ast::Function(ref name, ref args) => {
|
||||
&Function(ref name, ref args) => {
|
||||
if name.as_slice().eq_ignore_ascii_case("linear-gradient") {
|
||||
Ok(Image::LinearGradient(try!(
|
||||
super::specified::LinearGradient::parse_function(
|
||||
|
|
|
@ -14,6 +14,7 @@ pub use url::Url;
|
|||
|
||||
pub use cssparser::*;
|
||||
pub use cssparser::ast::*;
|
||||
pub use cssparser::ast::ComponentValue::*;
|
||||
pub use geom::SideOffsets2D;
|
||||
pub use self::common_types::specified::{Angle, AngleOrCorner};
|
||||
pub use self::common_types::specified::{HorizontalDirection, VerticalDirection};
|
||||
|
@ -480,7 +481,7 @@ pub mod longhands {
|
|||
fn from_component_value(input: &ComponentValue, _: &Url) -> Result<SpecifiedValue,()> {
|
||||
match *input {
|
||||
Ident(ref keyword) if keyword.as_slice().eq_ignore_ascii_case("auto") => Ok(T::Auto),
|
||||
ast::Number(ast::NumericValue {
|
||||
Number(NumericValue {
|
||||
int_value: Some(value),
|
||||
..
|
||||
}) => Ok(T::Number(value as i32)),
|
||||
|
@ -563,9 +564,9 @@ pub mod longhands {
|
|||
pub fn from_component_value(input: &ComponentValue, _base_url: &Url)
|
||||
-> Result<SpecifiedValue, ()> {
|
||||
match input {
|
||||
&ast::Number(ref value) if value.value >= 0. =>
|
||||
&Number(ref value) if value.value >= 0. =>
|
||||
Ok(SpecifiedValue::Number(value.value)),
|
||||
&ast::Percentage(ref value) if value.value >= 0. =>
|
||||
&Percentage(ref value) if value.value >= 0. =>
|
||||
Ok(SpecifiedValue::Percentage(value.value / 100.)),
|
||||
&Dimension(ref value, ref unit) if value.value >= 0. =>
|
||||
specified::Length::parse_dimension(value.value, unit.as_slice())
|
||||
|
@ -829,7 +830,8 @@ pub mod longhands {
|
|||
pub fn from_component_value(component_value: &ComponentValue, base_url: &Url)
|
||||
-> Result<SpecifiedValue, ()> {
|
||||
match component_value {
|
||||
&ast::Ident(ref value) if value.as_slice().eq_ignore_ascii_case("none") => {
|
||||
&Ident(ref value)
|
||||
if value.as_slice().eq_ignore_ascii_case("none") => {
|
||||
Ok(CSSImage(None))
|
||||
}
|
||||
_ => {
|
||||
|
|
|
@ -7,6 +7,7 @@ use std::ascii::{AsciiExt, OwnedAsciiExt};
|
|||
use sync::Arc;
|
||||
|
||||
use cssparser::ast::*;
|
||||
use cssparser::ast::ComponentValue::*;
|
||||
use cssparser::{tokenize, parse_nth};
|
||||
|
||||
use selector_matching::StylesheetOrigin;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue