summaryrefslogtreecommitdiff
path: root/parser.py
diff options
context:
space:
mode:
authorAnthon van der Neut <anthon@mnt.org>2017-08-07 09:43:06 +0200
committerAnthon van der Neut <anthon@mnt.org>2017-08-07 09:43:06 +0200
commit56035ae630d159ce4d4f32264d3f992a24d6014f (patch)
treea8a01711504430b1f196e6ac9aafd07fe346a2c4 /parser.py
parentbe4502b57ac2203e3ad075b18a5a94f87dfcf8dc (diff)
downloadruamel.yaml-56035ae630d159ce4d4f32264d3f992a24d6014f.tar.gz
python 2.7 changes float round-trippign
Diffstat (limited to 'parser.py')
-rw-r--r--parser.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/parser.py b/parser.py
index 779d50f..860fdd9 100644
--- a/parser.py
+++ b/parser.py
@@ -532,6 +532,8 @@ class Parser(object):
def parse_block_mapping_key(self):
# type: () -> Any
+ next_token = self.scanner.peek_token()
+ # print('>>>> tk', type(self), next_token, getattr(next_token, 'comment', None))
if self.scanner.check_token(KeyToken):
token = self.scanner.get_token()
token.move_comment(self.scanner.peek_token())
@@ -560,17 +562,23 @@ class Parser(object):
if self.scanner.check_token(ValueToken):
token = self.scanner.get_token()
# value token might have post comment move it to e.g. block
+ # pt = self.scanner.peek_token()
+ # print('pt', pt)
if self.scanner.check_token(ValueToken):
token.move_comment(self.scanner.peek_token())
else:
- token.move_comment(self.scanner.peek_token(), empty=True)
+ if not self.scanner.check_token(KeyToken):
+ token.move_comment(self.scanner.peek_token(), empty=True)
+ # else: empty value for this key cannot move token.comment
if not self.scanner.check_token(KeyToken, ValueToken, BlockEndToken):
self.states.append(self.parse_block_mapping_key)
return self.parse_block_node_or_indentless_sequence()
else:
self.state = self.parse_block_mapping_key
- return self.process_empty_scalar(token.end_mark,
- comment=self.scanner.peek_token().comment)
+ comment = token.comment
+ if comment is None:
+ comment=self.scanner.peek_token().comment
+ return self.process_empty_scalar(token.end_mark, comment=comment)
else:
self.state = self.parse_block_mapping_key
token = self.scanner.peek_token()