Index: /trunk/Decompiler.class.php
===================================================================
--- /trunk/Decompiler.class.php	(revision 757)
+++ /trunk/Decompiler.class.php	(revision 758)
@@ -650,4 +650,9 @@
 			$op['line'] = $i;
 			switch ($op['opcode']) {
+			case XC_CONT:
+			case XC_BRK:
+				$op['jmpouts'] = array();
+				break;
+
 			case XC_GOTO:
 			case XC_JMP:
@@ -801,17 +806,28 @@
 			return;
 		}
-		if (!empty($op['jmpouts']) && isset($op['isjmp'])) {
+		if (isset($op['jmpouts']) && isset($op['isjmp'])) {
 			if (isset($op['cond'])) {
 				echo "{$indent}check (" . str($op["cond"]) . ") {\n";
 				echo INDENT;
 			}
-			echo $indent;
-			echo xcache_get_opcode($op['opcode']), ' line', $op['jmpouts'][0];
-			if (isset($op['jmpouts'][1])) {
-				echo ', line', $op['jmpouts'][1];
-			}
-			echo ";";
-			// echo ' // <- line', $op['line'];
-			echo "\n";
+			switch ($op['opcode']) {
+			case XC_CONT:
+			case XC_BRK:
+				break;
+
+			case XC_GOTO:
+				echo $indent, 'goto', ' line', $op['jmpouts'][0], ';', "\n";
+				break;
+
+			default:
+				echo $indent;
+				echo xcache_get_opcode($op['opcode']), ' line', $op['jmpouts'][0];
+				if (isset($op['jmpouts'][1])) {
+					echo ', line', $op['jmpouts'][1];
+				}
+				echo ";";
+				// echo ' // <- line', $op['line'];
+				echo "\n";
+			}
 			if (isset($op['cond'])) echo "$indent}\n";
 		}
@@ -1521,4 +1537,14 @@
 					break;
 					// }}}
+				case XC_CONT:
+				case XC_BRK:
+					$op['cond'] = null;
+					$op['isjmp'] = true;
+					$resvar = $opc == XC_CONT ? 'continue' : 'break';
+					$count = str($this->getOpVal($op2, $EX));
+					if ($count != '1') {
+						$resvar .= ' ' . $count;
+					}
+					break;
 				case XC_GOTO:
 				case XC_JMP: // {{{
@@ -1531,6 +1557,4 @@
 					$caseValue = $this->getOpVal($op2, $EX);
 					$resvar = str($switchValue) . ' == ' . str($caseValue);
-					break;
-				case XC_BRK:
 					break;
 				case XC_RECV_INIT:
@@ -1578,7 +1602,4 @@
 					$EX['silence'] --;
 					$lastresvar = '@' . str($lastresvar, $EX);
-					break;
-					// }}}
-				case XC_CONT: // {{{
 					break;
 					// }}}
Index: /trunk/decompilesample.php
===================================================================
--- /trunk/decompilesample.php	(revision 757)
+++ /trunk/decompilesample.php	(revision 758)
@@ -186,4 +186,6 @@
 $a = $b ^ $c;
 $a = ~$b;
+$a = -$b;
+$a = +$b;
 $a = $b >> $c;
 $a = $b >> $c;
@@ -249,6 +251,9 @@
 
 foreach ($array as $key => $value) {
-	echo $key . ' = ' . $value . "\n";
-	continue;
+	foreach ($array as $key => $value) {
+		echo $key . ' = ' . $value . "\n";
+		break 2;
+		continue;
+	}
 }
 
@@ -279,5 +284,5 @@
 echo __LINE__;
 
-//* >= PHP 5.3
+//*
 echo 'PHP 5.3+ code testing';
 const CONST_VALUE = 1;
@@ -309,5 +314,8 @@
 $greet('PHP');
 $total = 0;
+$tax = 1;
 $callback = function ($quantity, $product) use ($tax, &$total) {
+	static $static = array(1);
+	$tax = 'tax';
 	$pricePerItem = constant('PRICE_' . strtoupper($product));
 	$total += $pricePerItem * $quantity * ($tax + 1);
