refactor parsing of toplevel comments
This commit is contained in:
parent
10a30b4c65
commit
de2173cc31
@ -159,7 +159,7 @@ impl<'a> StyleSheetParser<'a> {
|
|||||||
'a'..='z' | 'A'..='Z' | '_' | '-' | '0'..='9'
|
'a'..='z' | 'A'..='Z' | '_' | '-' | '0'..='9'
|
||||||
| '[' | '#' | ':' | '*' | '%' | '.' | '>' | '\\' => rules
|
| '[' | '#' | ':' | '*' | '%' | '.' | '>' | '\\' => rules
|
||||||
.extend(self.eat_rules(&Selector::new(), &mut Scope::new())?),
|
.extend(self.eat_rules(&Selector::new(), &mut Scope::new())?),
|
||||||
&'\t' | &'\n' | ' ' => {
|
'\t' | '\n' | ' ' => {
|
||||||
self.lexer.next();
|
self.lexer.next();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -186,16 +186,18 @@ impl<'a> StyleSheetParser<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
'/' => {
|
'/' => {
|
||||||
self.lexer.next();
|
let pos = self.lexer.next().unwrap().pos;
|
||||||
if '*' == self.lexer.peek().unwrap().kind {
|
match self.lexer.next() {
|
||||||
self.lexer.next();
|
Some(Token { kind: '/', .. }) => {
|
||||||
let comment = eat_comment(&mut self.lexer, &Scope::new(), &Selector::new())?;
|
read_until_newline(&mut self.lexer);
|
||||||
rules.push(comment.map_node(Stmt::MultilineComment));
|
devour_whitespace(&mut self.lexer);
|
||||||
} else if '/' == self.lexer.peek().unwrap().kind {
|
}
|
||||||
read_until_newline(&mut self.lexer);
|
Some(Token { kind: '*', .. }) => {
|
||||||
devour_whitespace(&mut self.lexer);
|
self.lexer.next();
|
||||||
} else {
|
let comment = eat_comment(&mut self.lexer, &Scope::new(), &Selector::new())?;
|
||||||
todo!()
|
rules.push(comment.map_node(Stmt::MultilineComment));
|
||||||
|
}
|
||||||
|
_ => return Err(("expected selector.", pos).into())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'@' => {
|
'@' => {
|
||||||
|
@ -66,3 +66,7 @@ error!(
|
|||||||
missing_colon_in_style,
|
missing_colon_in_style,
|
||||||
"a {color, red;}", "Error: Expected \":\"."
|
"a {color, red;}", "Error: Expected \":\"."
|
||||||
);
|
);
|
||||||
|
error!(
|
||||||
|
toplevel_forward_slash,
|
||||||
|
"/a {color, red;}", "Error: expected selector."
|
||||||
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user