OptionTokenizer(TokenStream tokenStream) { this(tokenStream, new AsIsEscapeUtil()); }
public Parser(String pattern) throws ScanException { this(pattern, new RegularEscapeUtil()); }
/** * Do not perform any character escaping, except for '%', and ')'. * * <p> * Here is the rationale. First, filename patterns do not include escape * combinations such as \r or \n. Moreover, characters which have special * meaning in logback parsers, such as '{', or '}' cannot be part of file * names (so me thinks). The left parenthesis character has special meaning * only if it is preceded by %. Thus, the only characters that needs escaping * are '%' and ')'. * * <p> * Note that this method assumes that it is called after the escape character * has been consumed. */ public void escape(String escapeChars, StringBuffer buf, char next, int pointer) { super.escape(""+CoreConstants.PERCENT_CHAR+CoreConstants.RIGHT_PARENTHESIS_CHAR, buf, next, pointer); } }
void escape(String escapeChars, StringBuffer buf) { if ((tokenStream.pointer < patternLength)) { char next = pattern.charAt(tokenStream.pointer++); escapeUtil.escape(escapeChars, buf, next, tokenStream.pointer); } } }
void parse() { try { // http://jira.qos.ch/browse/LBCORE-130 // we escape ')' for parsing purposes. Note that the original pattern is preserved // because it is shown to the user in status messages. We don't want the escaped version // to leak out. String patternForParsing = escapeRightParantesis(pattern); Parser<Object> p = new Parser<Object>(patternForParsing, new AlmostAsIsEscapeUtil()); p.setContext(context); Node t = p.parse(); this.headTokenConverter = p.compile(t, CONVERTER_MAP); } catch (ScanException sce) { addError("Failed to parse pattern \"" + pattern + "\".", sce); } }
public void escape(String escapeChars, StringBuffer buf, char next, int pointer) { if (escapeChars.indexOf(next) >= 0) { buf.append(next); } else switch (next) { case '_': // the \_ sequence is swallowed break; case '\\': buf.append(next); break; case 't': buf.append('\t'); break; case 'r': buf.append('\r'); break; case 'n': buf.append('\n'); break; default: String commaSeperatedEscapeChars = formatEscapeCharsForListing(escapeChars); throw new IllegalArgumentException("Illegal char '" + next + " at column " + pointer + ". Only \\\\, \\_" + commaSeperatedEscapeChars + ", \\t, \\n, \\r combinations are allowed as escape characters."); } }
value = RegularEscapeUtil.basicEscape(value);
TokenStream(String pattern) { this(pattern, new RegularEscapeUtil()); }
void escape(String escapeChars, StringBuffer buf) { if ((pointer < patternLength)) { char next = pattern.charAt(pointer++); escapeUtil.escape(escapeChars, buf, next, pointer); } }
OptionTokenizer(TokenStream tokenStream) { this(tokenStream, new AsIsEscapeUtil()); }
/** * This variant is used in tests * @param pattern */ OptionTokenizer(String pattern) { this(pattern, new RegularEscapeUtil()); }
void optionEscape(String escapeChars, StringBuffer buf) { if ((pointer < patternLength)) { char next = pattern.charAt(pointer++); optionEscapeUtil.escape(escapeChars, buf, next, pointer); } }
OptionTokenizer(TokenStream tokenStream) { this(tokenStream, new AsIsEscapeUtil()); }
public Parser(String pattern) throws ScanException { this(pattern, new RegularEscapeUtil()); }
private void handleKeywordState(char c, List<Token> tokenList, StringBuffer buf) { if (Character.isJavaIdentifierPart(c)) { buf.append(c); } else if (c == CURLY_LEFT) { addValuedToken(Token.SIMPLE_KEYWORD, buf, tokenList); state = TokenizerState.OPTION_STATE; } else if (c == CoreConstants.LEFT_PARENTHESIS_CHAR) { addValuedToken(Token.COMPOSITE_KEYWORD, buf, tokenList); state = TokenizerState.LITERAL_STATE; } else if (c == CoreConstants.PERCENT_CHAR) { addValuedToken(Token.SIMPLE_KEYWORD, buf, tokenList); tokenList.add(Token.PERCENT_TOKEN); state = TokenizerState.FORMAT_MODIFIER_STATE; } else if (c == CoreConstants.RIGHT_PARENTHESIS_CHAR) { addValuedToken(Token.SIMPLE_KEYWORD, buf, tokenList); state = TokenizerState.RIGHT_PARENTHESIS_STATE; } else { addValuedToken(Token.SIMPLE_KEYWORD, buf, tokenList); if (c == ESCAPE_CHAR) { if ((pointer < patternLength)) { char next = pattern.charAt(pointer++); escapeUtil.escape("%()", buf, next, pointer); } } else { buf.append(c); } state = TokenizerState.LITERAL_STATE; } }
TokenStream(String pattern) { this(pattern, new RegularEscapeUtil()); }
TokenStream(String pattern) { this(pattern, new RegularEscapeUtil()); }
TokenStream(String pattern) { this(pattern, new RegularEscapeUtil()); }
public Parser(String pattern) throws ScanException { this(pattern, new RegularEscapeUtil()); }
public Parser(String pattern) throws ScanException { this(pattern, new RegularEscapeUtil()); }