private void next(int current) { Token token; switch (status) { case WHITESPACE: token = new Token.Whitespace(from, s.subSequence(from, current).toString()); break; case WORD: token = new Token.Literal.Word(from, s.subSequence(from, current).toString(), buffer.toString()); break; case SHORT_OPTION: token = new Token.Literal.Option.Short(from, s.subSequence(from, current).toString(), buffer.toString()); break; case LONG_OPTION: token = new Token.Literal.Option.Long(from, s.subSequence(from, current).toString(), buffer.toString()); break; default: throw new AssertionError(); } tokens.add(token); status = Status.WHITESPACE; buffer.setLength(0); from = current; }
public void addOption(String name, List<?> value) { if (value.size() > 0) { Object first = value.get(0); if (first instanceof Boolean) { for (Object o : value) { if ((Boolean)o) { addOption(name); } } } else { for (Object o : value) { addOption(name); add(new Token.Literal.Word(last(), o.toString())); } } } }
public InvocationMatch<T> arguments(List<?> arguments) throws SyntaxException { TokenList tokens = new TokenList(this.tokens); for (Object argument : arguments) { tokens.add(new Token.Literal.Word(tokens.last(), argument.toString())); } return match(tokens); }
public InvocationMatcher<T> subordinate(String name) throws SyntaxException { TokenList tokens = new TokenList(this.tokens); if (name != null && name.length() > 0) { tokens.add(new Token.Literal.Word(tokens.last(), name)); } return new InvocationMatcher<T>(descriptor, tokens); }
public void testIndex() throws Exception { Tokenizer tokenizer = new TokenizerImpl("a b"); assertEquals(0, tokenizer.getIndex()); assertEquals(new Token.Literal.Word(0, "a"), tokenizer.next()); assertEquals(1, tokenizer.getIndex()); assertEquals(new Token.Literal.Whitespace(1, " "), tokenizer.next()); assertEquals(2, tokenizer.getIndex()); tokenizer.pushBack(1); assertEquals(1, tokenizer.getIndex()); assertEquals(new Token.Literal.Whitespace(1, " "), tokenizer.next()); assertEquals(2, tokenizer.getIndex()); } }
public InvocationMatcher<T> subordinate(String name) throws SyntaxException { TokenList tokens = new TokenList(this.tokens); if (name != null && name.length() > 0) { tokens.add(new Token.Literal.Word(tokens.last(), name)); } return new InvocationMatcher<T>(descriptor, tokens); }
public void testBackSlash1() throws Exception { Tokenizer tokenizer = new TokenizerImpl("\\a"); assertEquals(new Token.Literal.Word(0, "\\a", "a"), tokenizer.next()); assertDone(tokenizer); }
public void testQuotedWord2() throws Exception { Tokenizer tokenizer = new TokenizerImpl("\"a \""); assertEquals(new Token.Literal.Word(0, "\"a \"", "a "), tokenizer.next()); assertDone(tokenizer); tokenizer = new TokenizerImpl("\'a \'"); assertEquals(new Token.Literal.Word(0, "\'a \'", "a "), tokenizer.next()); assertDone(tokenizer); }
public void testWord5() throws Exception { Tokenizer tokenizer = new TokenizerImpl("--1"); assertEquals(new Token.Literal.Word(0, "--1"), tokenizer.next()); assertDone(tokenizer); }
public void testWord3() throws Exception { Tokenizer tokenizer = new TokenizerImpl(" a"); assertEquals(new Token.Whitespace(0, " "), tokenizer.next()); assertEquals(new Token.Literal.Word(1, "a"), tokenizer.next()); assertDone(tokenizer); }
public void testBackSlash2() throws Exception { Tokenizer tokenizer = new TokenizerImpl("\\ "); assertEquals(new Token.Literal.Word(0, "\\ ", " "), tokenizer.next()); assertDone(tokenizer); }
public void testQuotedWord1() throws Exception { Tokenizer tokenizer = new TokenizerImpl("\"a"); assertEquals(new Token.Literal.Word(0, "\"a", "a"), tokenizer.next()); assertDone(tokenizer); tokenizer = new TokenizerImpl("'a"); assertEquals(new Token.Literal.Word(0, "'a", "a"), tokenizer.next()); assertDone(tokenizer); }
public void testWord6() throws Exception { Tokenizer tokenizer = new TokenizerImpl("a "); assertEquals(new Token.Literal.Word(0, "a"), tokenizer.next()); assertEquals(new Token.Whitespace(1, " "), tokenizer.next()); assertDone(tokenizer); }
public void testWord2() throws Exception { Tokenizer tokenizer = new TokenizerImpl("ab"); assertEquals(new Token.Literal.Word(0, "ab"), tokenizer.next()); assertDone(tokenizer); }
public void testQuotedWord6() throws Exception { Tokenizer tokenizer = new TokenizerImpl("\"'\""); assertEquals(new Token.Literal.Option.Word(0, "\"'\"", "'"), tokenizer.next()); assertDone(tokenizer); tokenizer = new TokenizerImpl("'\"'"); assertEquals(new Token.Literal.Option.Word(0, "'\"'", "\""), tokenizer.next()); assertDone(tokenizer); }
public void testQuoteAfterWhitespace2() throws Exception { Tokenizer tokenizer = new TokenizerImpl(" \"b\""); assertEquals(new Token.Whitespace(0, " "), tokenizer.next()); assertEquals(new Token.Literal.Word(1, "\"b\"", "b"), tokenizer.next()); assertDone(tokenizer); }
public void testWord1() throws Exception { Tokenizer tokenizer = new TokenizerImpl("a"); assertEquals(new Token.Literal.Word(0, "a"), tokenizer.next()); assertDone(tokenizer); }
public void testQuotedWord7() throws Exception { Tokenizer tokenizer = new TokenizerImpl("a\"\"b"); assertEquals(new Token.Literal.Option.Word(0, "a\"\"b", "ab"), tokenizer.next()); assertDone(tokenizer); tokenizer = new TokenizerImpl("a''b"); assertEquals(new Token.Literal.Option.Word(0, "a''b", "ab"), tokenizer.next()); assertDone(tokenizer); }
public void testQuotedWord3() throws Exception { Tokenizer tokenizer = new TokenizerImpl("a\" \"b"); assertEquals(new Token.Literal.Word(0, "a\" \"b", "a b"), tokenizer.next()); assertDone(tokenizer); tokenizer = new TokenizerImpl("a\' \'b"); assertEquals(new Token.Literal.Word(0, "a\' \'b", "a b"), tokenizer.next()); assertDone(tokenizer); }
public void testWord4() throws Exception { Tokenizer tokenizer = new TokenizerImpl("-1"); assertEquals(new Token.Literal.Word(0, "-1"), tokenizer.next()); assertDone(tokenizer); }