Skip to content

Commit fc19b73

Browse files
authored
Parser fix (#293)
* Use correct starting index for body extraction * Fix grammar/parser inconsistencies between Unicode and UTF8
1 parent 86a13f5 commit fc19b73

File tree

3 files changed

+908
-866
lines changed

3 files changed

+908
-866
lines changed

lib/src/grammar.peg

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
%{
22
import 'dart:core';
3-
import 'constants.dart';
4-
import 'uri.dart';
5-
import 'name_addr_header.dart';
3+
import 'dart:convert';
64
import 'data.dart';
5+
import 'name_addr_header.dart';
6+
import 'uri.dart';
77

88
}%
99

@@ -305,7 +305,11 @@ TEXT_UTF8_TRIM <- TEXT_UTF8char+ ( LWS* TEXT_UTF8char)* {
305305

306306
TEXT_UTF8char <- [\x21-\x7E] / UTF8_NONASCII
307307

308-
UTF8_NONASCII <- [\u0080-\uFFFF]
308+
UTF8_NONASCII <- [\xC0-\xDF] UTF8_CONT
309+
/ [\xE0-\xEF] UTF8_CONT UTF8_CONT
310+
/ [\xF0-\xF7] UTF8_CONT UTF8_CONT UTF8_CONT
311+
/ [\xF8-\xFb] UTF8_CONT UTF8_CONT UTF8_CONT UTF8_CONT
312+
/ [\xFC-\xFD] UTF8_CONT UTF8_CONT UTF8_CONT UTF8_CONT UTF8_CONT
309313

310314
UTF8_CONT <- [\x80-\xBF]
311315

0 commit comments

Comments
 (0)