@SuppressWarnings("fallthrough") /* \M-, \C-, \c, or \... */ private int fetchEscapedValue() { if (!left()) { throw new SyntaxException(ERR_END_PATTERN_AT_ESCAPE); } fetch(); switch (c) { case 'M': if (syntax.op2EscCapitalMBarMeta()) { if (!left()) { throw new SyntaxException(ERR_END_PATTERN_AT_META); } fetch(); if (c != '-') { throw new SyntaxException(ERR_META_CODE_SYNTAX); } if (!left()) { throw new SyntaxException(ERR_END_PATTERN_AT_META); } fetch(); if (c == syntax.metaCharTable.esc) { c = fetchEscapedValue(); } c = ((c & 0xff) | 0x80); } else { fetchEscapedValueBackSlash(); } break; case 'C': if (syntax.op2EscCapitalCBarControl()) { if (!left()) { throw new SyntaxException(ERR_END_PATTERN_AT_CONTROL); } fetch(); if (c != '-') { throw new SyntaxException(ERR_CONTROL_CODE_SYNTAX); } fetchEscapedValueControl(); } else { fetchEscapedValueBackSlash(); } break; case 'c': if (syntax.opEscCControl()) { fetchEscapedValueControl(); } /* fall through */ default: fetchEscapedValueBackSlash(); } // switch return c; // ??? }