@@ -56,6 +56,14 @@ def __init__(self, suite: str, at_line: int, type: Type, text: [str]):
5656 self .s_type = type
5757 self .text = text
5858
59+ def __str__ (self ):
60+ return f'''StatementDefinition:
61+ suite: { self .suite_name }
62+ line: { self .at_line }
63+ type: { self .s_type }
64+ text:
65+ ''' + '\n ' .join ([f' { row } ' for row in self .text .split ('\n ' )])
66+
5967 @staticmethod
6068 def _parse_statement_type (statement_line : str ) -> Type :
6169 for t in list (StatementDefinition .Type ):
@@ -114,23 +122,26 @@ def get_test_suites(directory):
114122 return suites
115123
116124
117- def split_by_empty_lines (lines ):
125+ def split_by_statement (lines ):
118126 statement_lines = []
119127 statement_start_line_idx = 0
120128 for line_idx , line in lines :
121129 if line :
122- if not statement_lines :
130+ if line . startswith ( "statement " ) :
123131 statement_start_line_idx = line_idx
124- statement_lines .append (line )
125- elif statement_lines :
126- yield (statement_start_line_idx , statement_lines )
127- statement_lines = []
132+ statement_lines = [line ]
133+ elif statement_lines :
134+ statement_lines .append (line )
135+ else :
136+ if statement_lines :
137+ yield (statement_start_line_idx , statement_lines )
138+ statement_lines = []
128139 if statement_lines :
129140 yield (statement_start_line_idx , statement_lines )
130141
131142
132143def get_statements (suite_path , suite_name ):
133- for statement_start_line_idx , statement_lines in split_by_empty_lines (get_lines (suite_path )):
144+ for statement_start_line_idx , statement_lines in split_by_statement (get_lines (suite_path )):
134145 yield StatementDefinition .parse (
135146 suite_name ,
136147 statement_start_line_idx ,
0 commit comments