private static void processMultipleBinBranches(TrieParserReader reader, final short sourceShort, int p, final short[] localData) { p = (0==(TrieParser.computeJumpMask(sourceShort, localData[p])&0xFFFFFF)) ? p+3 : p+3+((((int)localData[p+1])<<15) | (0x7FFF&localData[p+2])); reader.type = localData[p++]; reader.pos = p; }
private static void processMultipleBinBranches(TrieParserReader reader, final short sourceShort, int p, final short[] localData) { p = (0==(TrieParser.computeJumpMask(sourceShort, localData[p])&0xFFFFFF)) ? p+3 : p+3+((((int)localData[p+1])<<15) | (0x7FFF&localData[p+2])); reader.type = localData[p++]; reader.pos = p; }
private static void processMultipleBinBranches(TrieParserReader reader, final short sourceShort, int p, final short[] localData) { int t; do { p = (0==(TrieParser.computeJumpMask(sourceShort, localData[p])&0xFFFFFF)) ? p+3 : p+3+((((int)localData[p+1])<<15) | (0x7FFF&localData[p+2])); } while (TrieParser.TYPE_BRANCH_VALUE == (t=localData[p++])); //keep going since this type cant end. reader.type = t; reader.pos = p; }
private void visitorBranch(TrieParser that, ByteSquenceVisitor visitor, byte[] source, int localSourcePos, int sourceLength, int sourceMask, final short[] data) { if (this.runLength<sourceLength) { //TrieMap data final int p = 1+pos; pos = (0==(0xFFFFFF&TrieParser.computeJumpMask((short) source[sourceMask & localSourcePos], data[pos]))) ? 3+pos : 2+p+((((int)data[p])<<15) | (0x7FFF&data[1+p])); visit(that, pos, visitor, source, localSourcePos, sourceLength, sourceMask, this.unfoundConstant, this.noMatchConstant);//only that jump } else{ return; } }
private void visitorBranch(TrieParser that, ByteSquenceVisitor visitor, byte[] source, int localSourcePos, int sourceLength, int sourceMask, final long unfoundResult, short[] data) { if (this.runLength<sourceLength) { //TrieMap data final short[] data1 = data; final int p = 1+pos; pos = (0==(0xFFFFFF&TrieParser.computeJumpMask((short) source[sourceMask & localSourcePos], data[pos]))) ? 3+pos : 2+p+((((int)data1[p])<<15) | (0x7FFF&data1[1+p])); visit(that, pos, visitor, source, localSourcePos, sourceLength, sourceMask, unfoundResult);//only that jump } else{ return; } }
private void visitorBranch(TrieParser that, ByteSquenceVisitor visitor, byte[] source, int localSourcePos, int sourceLength, int sourceMask, final short[] data) { if (this.runLength<sourceLength) { //TrieMap data final int p = 1+pos; pos = (0==(0xFFFFFF&TrieParser.computeJumpMask((short) source[sourceMask & localSourcePos], data[pos]))) ? 3+pos : 2+p+((((int)data[p])<<15) | (0x7FFF&data[1+p])); visit(that, pos, visitor, source, localSourcePos, sourceLength, sourceMask, this.unfoundConstant, this.noMatchConstant);//only that jump } else{ return; } }
int jumpMask = computeJumpMask((short) v, data[pos1++]); pos = 0==jumpMask? 1+pos1 : 1+(jumpMask&((((int)data[pos1++])<<15) | (0x7FFF&data[pos1])))+pos1;
int jumpMask = computeJumpMask((short) v, data[tempPos]);
int jumpMask = computeJumpMask((short) v, data[tempPos]);