package is2.parser; import is2.data.DX; import is2.data.IFV; import is2.data.Long2IntInterface; /** * @author Dr. Bernd Bohnet, 30.10.2010 * * */ final public class D5 extends DX { public long shift; private long h; /* * (non-Javadoc) @see is2.parser52L.DX#cz2() */ final public void cz2() { if (v0 < 0 || v1 < 0) { shift = 0; h = -1; return; } h = v0 | v1 << (shift = a0); shift += a1; } /* * (non-Javadoc) @see is2.parser52L.DX#cz3() */ @Override final public void cz3() { if (v0 < 0 || v1 < 0 || v2 < 0) { shift = 0; h = -1; return; } h = v0 | v1 << (shift = a0) | v2 << (shift += a1); shift = shift + a2; } /* * (non-Javadoc) @see is2.parser52L.DX#cz4() */ @Override final public void cz4() { if (v0 < 0 || v1 < 0 || v2 < 0 || v3 < 0) { shift = 0; h = -1; return; } h = v0 | v1 << (shift = a0) | v2 << (shift += a1) | v3 << (shift += a2); shift = shift + a3; } /* * (non-Javadoc) @see is2.parser52L.DX#cz5() */ @Override final public void cz5() { if (v0 < 0 || v1 < 0 || v2 < 0 || v3 < 0 || v4 < 0) { shift = 0; h = -1; return; } h = v0 | v1 << (shift = a0) | v2 << (shift += a1) | v3 << (shift += a2) | v4 << (shift += a3); shift = shift + a4; } /* * (non-Javadoc) @see is2.parser52L.DX#cz6() */ @Override final public void cz6() { if (v0 < 0 || v1 < 0 || v2 < 0 || v3 < 0 || v4 < 0 || v5 < 0) { shift = 0; h = -1; return; } h = v0 | v1 << (shift = a0) | v2 << (shift += a1) | v3 << (shift += a2) | v4 << (shift += a3) | v5 << (shift += a4); shift = shift + a5; } /* * (non-Javadoc) @see is2.parser52L.DX#cz7() */ @Override final public void cz7() { if (v0 < 0 || v1 < 0 || v2 < 0 || v3 < 0 || v4 < 0 || v5 < 0 || v6 < 0) { shift = 0; h = -1; return; } h = v0 | v1 << (shift = a0) | v2 << (shift += a1) | v3 << (shift += a2) | v4 << (shift += a3) | v5 << (shift += a4) | v6 << (shift += a5); shift = shift + a6; } /* * (non-Javadoc) @see is2.parser52L.DX#cz8() */ @Override final public void cz8() { if (v0 < 0 || v1 < 0 || v2 < 0 || v3 < 0 || v4 < 0 || v5 < 0 || v6 < 0 || v7 < 0) { h = -1; shift = 0; return; } h = v0 | v1 << (shift = a0) | v2 << (shift += a1) | v3 << (shift += a2) | v4 << (shift += a3) | v5 << (shift += a4) | v6 << (shift += a5) | v7 << (shift += a6); shift = shift + a7; } /* * (non-Javadoc) @see is2.parser52L.DX#clean() */ @Override final public void clean() { v0 = 0; v1 = 0; v2 = 0; v3 = 0; v4 = 0; v5 = 0; v6 = 0; v7 = 0; v8 = 0; shift = 0; h = 0; } public final Long2IntInterface _li; public D5(Long2IntInterface li) { _li = li; } /* * (non-Javadoc) @see is2.parser52L.DX#cs(int, int) */ @Override final public long cs(int b, int v) { if (h < 0) { h = -1; shift = 0; return -1; } h |= (long) v << shift; shift += b; if (shift > 64) { Parser.out.println("shift too large " + shift); new Exception().printStackTrace(); } return h; } /* * (non-Javadoc) @see is2.parser52L.DX#csa(int, int) */ @Override final public long csa(int b, int v) { if (h < 0) { h = -1; shift = 0; return -1; } h |= (long) v << shift; shift += b; if (shift > 64) { Parser.out.println("shift too large " + shift); new Exception().printStackTrace(); } return h; } /* * (non-Javadoc) @see is2.parser52L.DX#csa(int, int, is2.data.IFV) */ @Override final public void csa(int b, int v, IFV f) { if (h < 0) { h = -1; shift = 0; return; } h |= (long) v << shift; shift += b; if (shift > 64) { Parser.out.println("shift too large " + shift); new Exception().printStackTrace(); } f.add((int) _li.l2i(h)); } /* * (non-Javadoc) @see is2.parser52L.DX#getVal() */ @Override public long getVal() { if (h < 0) { h = -1; shift = 0; return h; } return h; } /* * (non-Javadoc) @see is2.parser52L.DX#map(is2.data.IFV, long) */ @Override public void map(IFV f, long l) { if (l > 0) { f.add(_li.l2i(l)); } } /* * (non-Javadoc) @see is2.data.DX#computeLabeValue(short, short) */ @Override public int computeLabeValue(int label, int shift) { return label << shift; } @Override public void fix() { } }