FUENTE
==============================================================================
test (int n)
{
while (1) {
if (1>0) {
break;
}
else if (2> 0){
continue;
}
}
}
ÁRBOL
==============================================================================
PROGRAM^{0}(
FUNCTION[test]^{1}(
WHILE(PRIMARY_NUM(TERMINAL[1:3]),
STATEMENTS(
IFELSE(
GT(PRIMARY_NUM(TERMINAL[1:4]),PRIMARY_NUM(TERMINAL[0:4])),
STATEMENTS(BREAK),
IF(
GT(PRIMARY_NUM(TERMINAL[2:7]),PRIMARY_NUM(TERMINAL[0:7])),
STATEMENTS(CONTINUE)
)
)
)
)
)
)
TRG
==============================================================================
loop_control: /BREAK|CONTINUE|WHILE/
LLAMADA
==============================================================================
my @loop_stuff = $SimpleTrans::loop_control->m($tree);
SALIDA DE $_->str for (@loop_stuff)
==============================================================================
Match[[WHILE:2:loop_control]](
Match[[BREAK:6:loop_control]](
Match[[CONTINUE:7:loop_control]]
)
)
Match[[BREAK:6:loop_control]](
Match[[CONTINUE:7:loop_control]]
)
Match[[CONTINUE:7:loop_control]]