private CFGResult statement(Block lastBlock) throws IOException, SyntaxFormatException {
		CFGResult result = assignment(lastBlock);
		if (result == null) {
			ArithmeticResult funcCallResult = funcCall(lastBlock);
			if (funcCallResult != null) {
				return new CFGResult(lastBlock);
			}
			if (result == null) {
				result = ifStatement(lastBlock);
				if (result == null) {
					result = whileStatement(lastBlock);
					if (result == null) {
						// TODO any special for return ?
						// I prefer to fix the return value to one reg#
						ArithmeticResult ret = returnStatement(lastBlock);
						if (ret != null) {
							result = inter.computeReturn(lastBlock, ret);
						}
					}
				}
			}
		}
		return result;
	}