bool semicolon;
};
class NodeStatementGoto: NodeStatement;
+class NodeStatementIf: NodeStatement;
class NodeExpression: Node;
class NodeExpressionOr: NodeExpression;
class NodeExpressionAnd: NodeExpression;
if value < 0.:
sign = '-'
value = -value
- if value >= .01 and value < 999999999.2:
+ if value == 0. or (value >= .01 and value < 999999999.2):
if value >= 100000000.:
value = f'{value:.0f}.'
elif value >= 10000000.:
break
else:
raise Exception(f'?UNDEF\'D STATEMENT ERROR IN {context.line_number():d}')
+@method(NodeStatementIf)
+def execute(self, context):
+ value = self.children[0].evaluate(context)
+ if value == '' or value == 0.:
+ context.i += 1
+ context.j = 1
del execute
@method(NodeExpression)
| %space (?E{t_def.NodeStatementPrint, semicolon = False}KEYWORD_PRINT print_expression_list0)
| %space (?E{t_def.NodeStatementPrint, semicolon = True}KEYWORD_PRINT print_expression_list1)
| %space (?E{t_def.NodeStatementGoto}KEYWORD_GOTO INT_LITERAL)
+ | %space (?E{t_def.NodeStatementIf}KEYWORD_IF expression KEYWORD_THEN)
+ | %space (?E{t_def.NodeStatementIf}KEYWORD_IF expression KEYWORD_THEN) %space (?E{t_def.NodeStatementGoto}INT_LITERAL)
;
print_expression_list0