@@ -239,8 +239,13 @@ pub enum Whitespace {
239239 Space ,
240240 Newline ,
241241 Tab ,
242- SingleLineComment { comment : String , prefix : String } ,
242+ SingleLineComment {
243+ comment : String ,
244+ prefix : String ,
245+ } ,
243246 MultiLineComment ( String ) ,
247+ /// https://en.wikipedia.org/wiki/Zero-width_space
248+ Zwsp ,
244249}
245250
246251impl fmt:: Display for Whitespace {
@@ -251,6 +256,7 @@ impl fmt::Display for Whitespace {
251256 Whitespace :: Tab => f. write_str ( "\t " ) ,
252257 Whitespace :: SingleLineComment { prefix, comment } => write ! ( f, "{}{}" , prefix, comment) ,
253258 Whitespace :: MultiLineComment ( s) => write ! ( f, "/*{}*/" , s) ,
259+ Whitespace :: Zwsp => write ! ( f, "\u{feff} " ) ,
254260 }
255261 }
256262}
@@ -314,6 +320,7 @@ impl<'a> Tokenizer<'a> {
314320 match chars. peek ( ) {
315321 Some ( & ch) => match ch {
316322 ' ' => self . consume_and_return ( chars, Token :: Whitespace ( Whitespace :: Space ) ) ,
323+ '\u{feff}' => self . consume_and_return ( chars, Token :: Whitespace ( Whitespace :: Zwsp ) ) ,
317324 '\t' => self . consume_and_return ( chars, Token :: Whitespace ( Whitespace :: Tab ) ) ,
318325 '\n' => self . consume_and_return ( chars, Token :: Whitespace ( Whitespace :: Newline ) ) ,
319326 '\r' => {
0 commit comments