Improve comment syntax
This commit is contained in:
parent
878a026851
commit
2db5b83461
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
<%# This is a comment %>
|
||||
<%# This is a comment #%>
|
||||
<% for (i, msg) in messages.iter().enumerate() { %>
|
||||
<% if i == 0 { %>
|
||||
<h1>Hello, world!</h1>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
<%# This is a comment %>
|
||||
<%# This is a comment #%>
|
||||
<% for (i, msg) in messages.iter().enumerate() { %>
|
||||
<% if i == 0 { %>
|
||||
<h1>Hello, world!</h1>
|
||||
|
|
|
@ -175,8 +175,14 @@ impl<'a> ParseStream<'a> {
|
|||
}
|
||||
|
||||
if token_kind == TokenKind::Comment {
|
||||
let block_delim_end = self.block_delimiter.1.as_bytes();
|
||||
let pos = self.source[start..]
|
||||
.find(&*self.block_delimiter.1)
|
||||
.as_bytes()
|
||||
.windows(1 + block_delim_end.len())
|
||||
.enumerate()
|
||||
.position(|(_, window)| {
|
||||
window[0] == b'#' && &window[1..] == block_delim_end
|
||||
})
|
||||
.ok_or_else(|| self.error("Unterminated comment block"))?;
|
||||
|
||||
self.take_n(start);
|
||||
|
@ -186,7 +192,7 @@ impl<'a> ParseStream<'a> {
|
|||
kind: token_kind,
|
||||
};
|
||||
|
||||
self.take_n(pos + self.block_delimiter.1.len());
|
||||
self.take_n(pos + 1 + self.block_delimiter.1.len());
|
||||
return Ok(token);
|
||||
}
|
||||
|
||||
|
@ -431,7 +437,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn non_ascii_delimiter() {
|
||||
let src = r##"foo <🍣# This is a comment 🍣> bar <🍣= r"🍣>" 🍣> baz <🍣🍣"##;
|
||||
let src = r##"foo <🍣# This is a comment #🍣> bar <🍣= r"🍣>" 🍣> baz <🍣🍣"##;
|
||||
let parser = Parser::new().delimiter('🍣');
|
||||
let tokens = parser.parse(src).into_vec().unwrap();
|
||||
assert_eq!(
|
||||
|
@ -449,22 +455,22 @@ mod tests {
|
|||
},
|
||||
Token {
|
||||
content: " bar ",
|
||||
offset: 34,
|
||||
offset: 35,
|
||||
kind: TokenKind::Text
|
||||
},
|
||||
Token {
|
||||
content: "r\"🍣>\"",
|
||||
offset: 46,
|
||||
offset: 47,
|
||||
kind: TokenKind::BufferedCode { escape: true }
|
||||
},
|
||||
Token {
|
||||
content: " baz ",
|
||||
offset: 60,
|
||||
offset: 61,
|
||||
kind: TokenKind::Text
|
||||
},
|
||||
Token {
|
||||
content: "<🍣",
|
||||
offset: 65,
|
||||
offset: 66,
|
||||
kind: TokenKind::Text
|
||||
},
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue