public Parser(String pattern, IEscapeUtil escapeUtil) throws ScanException { try { TokenStream ts = new TokenStream(pattern, escapeUtil); this.tokenList = ts.tokenize(); } catch (IllegalArgumentException npe) { throw new ScanException("Failed to initialize Parser", npe); } }
public Parser(String pattern, IEscapeUtil escapeUtil) throws ScanException { try { TokenStream ts = new TokenStream(pattern, escapeUtil); this.tokenList = ts.tokenize(); } catch (IllegalArgumentException npe) { throw new ScanException("Failed to initialize Parser", npe); } }
public Parser(String pattern, IEscapeUtil escapeUtil) throws ScanException { try { TokenStream ts = new TokenStream(pattern, escapeUtil); this.tokenList = ts.tokenize(); } catch (IllegalArgumentException npe) { throw new ScanException("Failed to initialize Parser", npe); } }
public Parser(String pattern, IEscapeUtil escapeUtil) throws ScanException { try { TokenStream ts = new TokenStream(pattern, escapeUtil); this.tokenList = ts.tokenize(); } catch (NullPointerException npe) { throw new ScanException("Failed to initialize Parser", npe); } }
public Parser(String pattern, IEscapeUtil escapeUtil) throws ScanException { try { TokenStream ts = new TokenStream(pattern, escapeUtil); this.tokenList = ts.tokenize(); } catch (IllegalArgumentException npe) { throw new ScanException("Failed to initialize Parser", npe); } }
public Parser(String pattern, IEscapeUtil escapeUtil) throws ScanException { try { TokenStream ts = new TokenStream(pattern, escapeUtil); this.tokenList = ts.tokenize(); } catch (IllegalArgumentException npe) { throw new ScanException("Failed to initialize Parser", npe); } }
public Parser(String pattern, IEscapeUtil escapeUtil) throws ScanException { try { TokenStream ts = new TokenStream(pattern, escapeUtil); this.tokenList = ts.tokenize(); } catch (IllegalArgumentException npe) { throw new ScanException("Failed to initialize Parser", npe); } }
public Parser(String pattern, IEscapeUtil escapeUtil) throws ScanException { try { TokenStream ts = new TokenStream(pattern, escapeUtil); this.tokenList = ts.tokenize(); } catch (IllegalArgumentException npe) { throw new ScanException("Failed to initialize Parser", npe); } }
public Parser(String pattern, IEscapeUtil escapeUtil) throws ScanException { try { TokenStream ts = new TokenStream(pattern, escapeUtil); this.tokenList = ts.tokenize(); } catch (IllegalArgumentException npe) { throw new ScanException("Failed to initialize Parser", npe); } }
@Test public void testEmptyP2() throws ScanException { List<Token> tl = new TokenStream("%()").tokenize(); List<Token> witness = new ArrayList<Token>(); witness.add(Token.PERCENT_TOKEN); witness.add(Token.BARE_COMPOSITE_KEYWORD_TOKEN); witness.add(Token.RIGHT_PARENTHESIS_TOKEN); assertEquals(witness, tl); }
@Test public void testEmptyP() throws ScanException { List<Token> tl = new TokenStream("()").tokenize(); List<Token> witness = new ArrayList<Token>(); witness.add(new Token(Token.LITERAL, "(")); witness.add(Token.RIGHT_PARENTHESIS_TOKEN); assertEquals(witness, tl); }
@Test public void testEmpty() throws ScanException { try { new TokenStream("").tokenize(); fail("empty string not allowed"); } catch (IllegalArgumentException e) { } }
@Test public void testNested() throws ScanException { List<Token> tl = new TokenStream("%(%a%(%b))").tokenize(); List<Token> witness = new ArrayList<Token>(); witness.add(Token.PERCENT_TOKEN); witness.add(Token.BARE_COMPOSITE_KEYWORD_TOKEN); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "a")); witness.add(Token.PERCENT_TOKEN); witness.add(Token.BARE_COMPOSITE_KEYWORD_TOKEN); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "b")); witness.add(Token.RIGHT_PARENTHESIS_TOKEN); witness.add(Token.RIGHT_PARENTHESIS_TOKEN); assertEquals(witness, tl); }
@Test public void testSingleLiteral() throws ScanException { List<Token> tl = new TokenStream("hello").tokenize(); List<Token> witness = new ArrayList<Token>(); witness.add(new Token(Token.LITERAL, "hello")); assertEquals(witness, tl); }
@Test public void testSimpleP() throws ScanException { List<Token> tl = new TokenStream("%(hello %class{.4?})").tokenize(); List<Token> witness = new ArrayList<Token>(); witness.add(Token.PERCENT_TOKEN); witness.add(Token.BARE_COMPOSITE_KEYWORD_TOKEN); witness.add(new Token(Token.LITERAL, "hello ")); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "class")); List<String> ol = new ArrayList<String>(); ol.add(".4?"); witness.add(new Token(Token.OPTION, ol)); witness.add(Token.RIGHT_PARENTHESIS_TOKEN); assertEquals(witness, tl); }
@Test public void compositedKeywordFollowedByOptions() throws ScanException { { List<Token> tl = new TokenStream("%d(A){o}", new AlmostAsIsEscapeUtil()).tokenize(); List<Token> witness = new ArrayList<Token>(); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.COMPOSITE_KEYWORD, "d")); witness.add(new Token(Token.LITERAL, "A")); witness.add(Token.RIGHT_PARENTHESIS_TOKEN); List<String> ol = new ArrayList<String>(); ol.add("o"); witness.add(new Token(Token.OPTION, ol)); assertEquals(witness, tl); } } }
@Test public void testWindowsLikeBackSlashes() throws ScanException { List<Token> tl = new TokenStream("c:\\hello\\world.%i", new AlmostAsIsEscapeUtil()).tokenize(); List<Token> witness = new ArrayList<Token>(); witness.add(new Token(Token.LITERAL, "c:\\hello\\world.")); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "i")); assertEquals(witness, tl); }
@Test public void testComplexNR() throws ScanException { List<Token> tl = new TokenStream("%d{1234} [%34.-67toto] %n").tokenize(); List<Token> witness = new ArrayList<Token>(); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "d")); List<String> ol = new ArrayList<String>(); ol.add("1234"); witness.add(new Token(Token.OPTION, ol)); witness.add(new Token(Token.LITERAL, " [")); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.FORMAT_MODIFIER, "34.-67")); witness.add(new Token(Token.SIMPLE_KEYWORD, "toto")); witness.add(new Token(Token.LITERAL, "] ")); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "n")); assertEquals(witness, tl); }
@Test public void testSimpleP2() throws ScanException { List<Token> tl = new TokenStream("X %a %-12.550(hello %class{.4?})").tokenize(); List<Token> witness = new ArrayList<Token>(); witness.add(new Token(Token.LITERAL, "X ")); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "a")); witness.add(new Token(Token.LITERAL, " ")); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.FORMAT_MODIFIER, "-12.550")); witness.add(Token.BARE_COMPOSITE_KEYWORD_TOKEN); witness.add(new Token(Token.LITERAL, "hello ")); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "class")); List<String> ol = new ArrayList<String>(); ol.add(".4?"); witness.add(new Token(Token.OPTION, ol)); witness.add(Token.RIGHT_PARENTHESIS_TOKEN); assertEquals(witness, tl); }
@Test public void testMultipleRecursion() throws ScanException { List<Token> tl = new TokenStream("%-1(%d %45(%class %file))").tokenize(); List<Token> witness = new ArrayList<Token>(); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.FORMAT_MODIFIER, "-1")); witness.add(Token.BARE_COMPOSITE_KEYWORD_TOKEN); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "d")); witness.add(new Token(Token.LITERAL, " ")); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.FORMAT_MODIFIER, "45")); witness.add(Token.BARE_COMPOSITE_KEYWORD_TOKEN); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "class")); witness.add(new Token(Token.LITERAL, " ")); witness.add(Token.PERCENT_TOKEN); witness.add(new Token(Token.SIMPLE_KEYWORD, "file")); witness.add(Token.RIGHT_PARENTHESIS_TOKEN); witness.add(Token.RIGHT_PARENTHESIS_TOKEN); assertEquals(witness, tl); }