diff --git a/toml/lexer.hpp b/toml/lexer.hpp index 2eea996..c4dcc95 100644 --- a/toml/lexer.hpp +++ b/toml/lexer.hpp @@ -119,8 +119,8 @@ using lex_local_time = lex_partial_time; // =========================================================================== using lex_quotation_mark = character<'"'>; -using lex_basic_unescaped = exclude, // 0x09 (tab) - in_range<0x0a, 0x1F>, // is allowed +using lex_basic_unescaped = exclude, // 0x09 (tab) is allowed + in_range<0x0A, 0x1F>, character<0x22>, character<0x5C>, character<0x7F>>>; @@ -178,8 +178,8 @@ using lex_ml_basic_string_close = sequence< maybe, maybe >; -using lex_ml_basic_unescaped = exclude, // 0x09 - in_range<0x0a, 0x1F>, // is tab +using lex_ml_basic_unescaped = exclude, // 0x09 is tab + in_range<0x0A, 0x1F>, character<0x5C>, // backslash character<0x7F>, // DEL lex_ml_basic_string_delim>>; @@ -196,8 +196,8 @@ using lex_ml_basic_string = sequence; -using lex_literal_char = exclude, - in_range<0x10, 0x19>, character<0x27>>>; +using lex_literal_char = exclude, in_range<0x0A, 0x1F>, + character<0x7F>, character<0x27>>>; using lex_apostrophe = character<'\''>; using lex_literal_string = sequence, @@ -212,7 +212,7 @@ using lex_ml_literal_string_close = sequence< >; using lex_ml_literal_char = exclude, - in_range<0x10, 0x1F>, + in_range<0x0A, 0x1F>, character<0x7F>, lex_ml_literal_string_delim>>; using lex_ml_literal_body = repeat, @@ -227,7 +227,8 @@ using lex_string = either; -using lex_non_eol = either, exclude>>; +using lex_non_eol = exclude, /*0x09 == tab is allowed*/ + in_range<0x0A, 0x1F>, character<0x7F>>>; using lex_comment = sequence>;