| 712 | } |
| 713 | } |
| 714 | void p_array_int_element_offset(FlatZincSpace& s, const ConExpr& ce, |
| 715 | AST::Node* ann) { |
| 716 | bool isConstant = true; |
| 717 | AST::Array* a = ce[2]->getArray(); |
| 718 | for (int i=a->a.size(); i--;) { |
| 719 | if (!a->a[i]->isInt()) { |
| 720 | isConstant = false; |
| 721 | break; |
| 722 | } |
| 723 | } |
| 724 | IntVar selector = s.arg2IntVar(ce[0]); |
| 725 | int offset = ce[1]->getInt(); |
| 726 | rel(s, selector >= offset); |
| 727 | if (isConstant) { |
| 728 | IntSharedArray sia = s.arg2intsharedarray(ce[2]); |
| 729 | element(s, sia, selector, -offset, s.arg2IntVar(ce[3]), s.ann2ipl(ann)); |
| 730 | } else { |
| 731 | IntVarArgs iv = s.arg2intvarargs(ce[2]); |
| 732 | element(s, iv, selector, -offset, s.arg2IntVar(ce[3]), s.ann2ipl(ann)); |
| 733 | } |
| 734 | } |
| 735 | void p_array_int_element2d(FlatZincSpace& s, const ConExpr& ce, |
| 736 | AST::Node* ann) { |
| 737 | bool isConstant = true; |
nothing calls this directly
no test coverage detected