Untitled
unknown
plain_text
a year ago
2.8 kB
5
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