ListNode lin = (ListNode)node; do { compileTree(lin.value); } while ((lin = lin.tail) != null); break; compileAltNode((ListNode)node); break; StringNode sn = (StringNode)node; if (sn.isRaw()) { compileStringRawNode(sn); } else { compileStringNode(sn); compileCClassNode((CClassNode)node); break; compileCTypeNode((CTypeNode)node); break; compileAnyCharNode(); break; compileBackrefNode((BackRefNode)node); break; compileCallNode((CallNode)node); break;
private void compileStringRawNode(StringNode sn) { if (sn.length() <= 0) return; addCompileString(sn.bytes, sn.p, 1 /*sb*/, sn.length(), false); }
private void compileStringRawNode(StringNode sn) { if (sn.length() <= 0) return; addCompileString(sn.bytes, sn.p, 1 /*sb*/, sn.length(), false); }
ListNode lin = (ListNode)node; do { compileTree(lin.value); } while ((lin = lin.tail) != null); break; compileAltNode((ListNode)node); break; StringNode sn = (StringNode)node; if (sn.isRaw()) { compileStringRawNode(sn); } else { compileStringNode(sn); compileCClassNode((CClassNode)node); break; compileCTypeNode((CTypeNode)node); break; compileAnyCharNode(); break; compileBackrefNode((BackRefNode)node); break; compileCallNode((CallNode)node); break;
private void compileStringNode(StringNode node) { StringNode sn = node; if (sn.length() <= 0) return; boolean ambig = sn.isAmbig(); int p, prev; p = prev = sn.p; int end = sn.end; byte[]bytes = sn.bytes; int prevLen = enc.length(bytes, p, end); p += prevLen; int blen = prevLen; while (p < end) { int len = enc.length(bytes, p, end); if (len == prevLen || ambig) { blen += len; } else { addCompileString(bytes, prev, prevLen, blen, ambig); prev = p; blen = len; prevLen = len; } p += len; } addCompileString(bytes, prev, prevLen, blen, ambig); }
private void compileStringNode(StringNode node) { StringNode sn = node; if (sn.length() <= 0) return; boolean ambig = sn.isAmbig(); int p, prev; p = prev = sn.p; int end = sn.end; byte[]bytes = sn.bytes; int prevLen = enc.length(bytes, p, end); p += prevLen; int blen = prevLen; while (p < end) { int len = enc.length(bytes, p, end); if (len == prevLen || ambig) { blen += len; } else { addCompileString(bytes, prev, prevLen, blen, ambig); prev = p; blen = len; prevLen = len; } p += len; } addCompileString(bytes, prev, prevLen, blen, ambig); }