@@ -16,16 +16,17 @@ def make_regex(string, extra_flags=0):
1616
1717
1818_newline = make_regex (r"(\r\n|\n|\r)" )
19- _whitespace = make_regex (r"\s*" , extra_flags = re .MULTILINE )
19+ _multiline_whitespace = make_regex (r"\s*" , extra_flags = re .MULTILINE )
20+ _whitespace = make_regex (r"[^\S\r\n]*" )
2021_export = make_regex (r"(?:export[^\S\r\n]+)?" )
2122_single_quoted_key = make_regex (r"'([^']+)'" )
2223_unquoted_key = make_regex (r"([^=\#\s]+)" )
23- _equal_sign = make_regex (r"([^\S\r\n]* =[^\S\r\n]*)? " )
24+ _equal_sign = make_regex (r"(=[^\S\r\n]*)" )
2425_single_quoted_value = make_regex (r"'((?:\\'|[^'])*)'" )
2526_double_quoted_value = make_regex (r'"((?:\\"|[^"])*)"' )
2627_unquoted_value_part = make_regex (r"([^ \r\n]*)" )
2728_comment = make_regex (r"(?:\s*#[^\r\n]*)?" )
28- _end_of_line = make_regex (r"[^\S\r\n]*(?:\r\n|\n|\r)? " )
29+ _end_of_line = make_regex (r"[^\S\r\n]*(?:\r\n|\n|\r|$) " )
2930_rest_of_line = make_regex (r"[^\r\n]*(?:\r|\n|\r\n)?" )
3031_double_quote_escapes = make_regex (r"\\[\\'\"abfnrtv]" )
3132_single_quote_escapes = make_regex (r"\\[\\']" )
@@ -191,11 +192,15 @@ def parse_binding(reader):
191192 # type: (Reader) -> Binding
192193 reader .set_mark ()
193194 try :
194- reader .read_regex (_whitespace )
195+ reader .read_regex (_multiline_whitespace )
195196 reader .read_regex (_export )
196197 key = parse_key (reader )
197- (sign ,) = reader .read_regex (_equal_sign )
198- value = parse_value (reader ) if sign else None
198+ reader .read_regex (_whitespace )
199+ if reader .peek (1 ) == "=" :
200+ reader .read_regex (_equal_sign )
201+ value = parse_value (reader ) # type: Optional[Text]
202+ else :
203+ value = None
199204 reader .read_regex (_comment )
200205 reader .read_regex (_end_of_line )
201206 return Binding (
0 commit comments