diff options
author | Lars Wirzenius <lars.wirzenius@tilaajavastuu.fi> | 2015-02-10 10:23:17 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2015-02-10 10:30:51 +0200 |
commit | 19e090549b933c31aeb057e59825a8c279e26e99 (patch) | |
tree | fe32c33dbaca33a143ffe2de01a132ef792481c4 /yarnlib/block_parser.py | |
parent | acd3d6316ef5831be1a9663a267b485767ada418 (diff) | |
download | cmdtest-19e090549b933c31aeb057e59825a8c279e26e99.tar.gz |
Implement continuation lines in yarn
Diffstat (limited to 'yarnlib/block_parser.py')
-rw-r--r-- | yarnlib/block_parser.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/yarnlib/block_parser.py b/yarnlib/block_parser.py index 64dc990..db99b31 100644 --- a/yarnlib/block_parser.py +++ b/yarnlib/block_parser.py @@ -42,6 +42,7 @@ class BlockParser(object): 'THEN': self.parse_then, 'FINALLY': self.parse_finally, 'AND': self.parse_and, + '...': self.parse_continuation, 'IMPLEMENTS': self.parse_implementing, } @@ -113,6 +114,13 @@ class BlockParser(object): assert step.what in self.line_parsers return self.line_parsers[step.what](line, blocks) + def parse_continuation(self, line, blocks): + scenario = self.scenarios[-1] + step = scenario.steps[-1] + text = '%s %s' % (step.text, line) + del scenario.steps[-1] + return self.line_parsers[step.what](text, blocks) + def parse_implementing(self, line, blocks): words = line.split() if len(words) < 2: |