_parse_variable($expr_arg) . "))"; } else { $expr = "!(1 & $is_arg)"; } break; case 'odd': if (isset($_args[$expr_end]) && $_args[$expr_end] == 'by') { $expr_end++; $expr_arg = $_args[$expr_end++]; $expr = "(1 & ($is_arg / " . $object->_parse_variable($expr_arg) . "))"; } else { $expr = "(1 & $is_arg)"; } break; case 'div': if (@$_args[$expr_end] == 'by') { $expr_end++; $expr_arg = $_args[$expr_end++]; $expr = "!($is_arg % " . $object->_parse_variable($expr_arg) . ")"; } else { throw new Template_Exception("expecting 'by' after 'div'", $object); } break; default: throw new Template_Exception("unknown 'is' expression - '$expr_type'", $object); break; } if ($negate_expr) { $expr = "!($expr)"; } array_splice($_args, 0, $expr_end, $expr); return $_args; } ?>