The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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]]