void altMerge(OptMapInfo other, Encoding enc) { /* if (! is_equal_mml(&to->mmd, &add->mmd)) return ; */ if (value == 0) return; if (other.value == 0 || mmd.max < other.mmd.max) { clear(); return; } mmd.altMerge(other.mmd); int val = 0; for (int i=0; i<Config.CHAR_TABLE_SIZE; i++) { if (other.map[i] != 0) map[i] = 1; if (map[i] != 0) val += positionValue(enc, i); } value = val; anchor.altMerge(other.anchor); }
void altMerge(OptMapInfo other, Encoding enc) { /* if (! is_equal_mml(&to->mmd, &add->mmd)) return ; */ if (value == 0) return; if (other.value == 0 || mmd.max < other.mmd.max) { clear(); return; } mmd.altMerge(other.mmd); int val = 0; for (int i=0; i<Config.CHAR_TABLE_SIZE; i++) { if (other.map[i] != 0) map[i] = 1; if (map[i] != 0) val += positionValue(enc, i); } value = val; anchor.altMerge(other.anchor); }
public void altMerge(NodeOptInfo other, OptEnvironment env) { anchor.altMerge(other.anchor); exb.altMerge(other.exb, env); exm.altMerge(other.exm, env); expr.altMerge(other.expr, env); map.altMerge(other.map, env.enc); length.altMerge(other.length); }
public void altMerge(NodeOptInfo other, OptEnvironment env) { anchor.altMerge(other.anchor); exb.altMerge(other.exb, env); exm.altMerge(other.exm, env); expr.altMerge(other.expr, env); map.altMerge(other.map, env.enc); length.altMerge(other.length); }
void altMerge(OptExactInfo other, OptEnvironment env) { if (other.length == 0 || length == 0) { clear(); return; } if (!mmd.equal(other.mmd)) { clear(); return; } int i; for (i=0; i<length && i<other.length;) { if (bytes[i] != other.bytes[i]) break; int len = env.enc.length(bytes, i, length); int j; for (j=1; j<len; j++) { if (bytes[i+j] != other.bytes[i+j]) break; } if (j < len) break; i += len; } if (!other.reachEnd || i<other.length || i<length) reachEnd = false; length = i; if (ignoreCase < 0) { ignoreCase = other.ignoreCase; } else if (other.ignoreCase >= 0) { ignoreCase |= other.ignoreCase; } anchor.altMerge(other.anchor); if (!reachEnd) anchor.rightAnchor = 0; }
void altMerge(OptExactInfo other, OptEnvironment env) { if (other.length == 0 || length == 0) { clear(); return; } if (!mmd.equal(other.mmd)) { clear(); return; } int i; for (i=0; i<length && i<other.length;) { if (bytes[i] != other.bytes[i]) break; int len = env.enc.length(bytes, i, length); int j; for (j=1; j<len; j++) { if (bytes[i+j] != other.bytes[i+j]) break; } if (j < len) break; i += len; } if (!other.reachEnd || i<other.length || i<length) reachEnd = false; length = i; if (ignoreCase < 0) { ignoreCase = other.ignoreCase; } else if (other.ignoreCase >= 0) { ignoreCase |= other.ignoreCase; } anchor.altMerge(other.anchor); if (!reachEnd) anchor.rightAnchor = 0; }