Untitled
unknown
plain_text
5 months ago
2.8 kB
3
Indexable
def update_parent_statements_with_else(self,df): else_rows = df[df['Keywords'] == 'ELSE'] for index, row in else_rows.iterrows(): conditional_seq = str(int(float(row['Conditional_Seq']))) parent_row_index = df[df['Sequence'] == conditional_seq].index if not parent_row_index.empty: parent_statement = df.at[parent_row_index[0], 'Statement'].strip() if 'IF' in parent_statement and 'NOT' not in parent_statement: parts = parent_statement.split() if parts[0] == 'IF': parts.insert(1, 'NOT') # Insert NOT after IF df.at[parent_row_index[0], 'Statement'] = ' '.join(parts) df = df[df['Keywords'] != 'ELSE'].reset_index(drop=True) return df def get_code_intended(self, df): indentation_level = 0 result = [] if_stack = [] evaluate_stack = [] when_found = 0 for index, row in df.iterrows(): statement = row['Statement'] keyword = row['Keywords'] if 'EVALUATE' in keyword and 'END-EVALUATE' not in statement: result.append(f"{str(row['Sequence']).zfill(6)} {' ' * indentation_level}{statement}") indentation_level += 1 evaluate_stack.append(row['Sequence']) elif 'WHEN' in keyword: result.append(f"{str(row['Sequence']).zfill(6)} {' ' * indentation_level}{statement}") indentation_level += 1 when_found += 1 elif 'IF' in keyword and 'END-IF' not in statement: result.append(f"{str(row['Sequence']).zfill(6)} {' ' * indentation_level}{statement}") indentation_level += 1 if_stack.append(row['Sequence']) elif 'END' in keyword and 'END-IF' in statement: if if_stack: if_stack.pop() indentation_level -= 1 result.append(f"{str(row['Sequence']).zfill(6)} {' ' * indentation_level}{statement}") elif 'END' in keyword and 'END-EVALUATE' in statement: if evaluate_stack and when_found !=0: evaluate_stack.pop() indentation_level -= 2 elif evaluate_stack and when_found ==0: evaluate_stack.pop() indentation_level -= 1 result.append(f"{str(row['Sequence']).zfill(6)} {' ' * indentation_level}{statement}") else: result.append(f"{str(row['Sequence']).zfill(6)} {' ' * indentation_level}{statement}") return result
Editor is loading...
Leave a Comment