@Override
  public boolean matchToken(TokenQueue tokenQueue, List<Token> matchedTokenList) {
    int last = matchedTokenList.size() - 1;
    tokenQueue.pushForward(Collections.singletonList(matchedTokenList.get(last)));
    matchedTokenList.remove(last);
    return true;
  }
@Test
  public void shouldMatch() {
    TokenQueue tokenQueue = spy(new TokenQueue());
    Token token = new Token("a", 0, 0);
    List<Token> output = new ArrayList<>(Arrays.asList(token));
    ForgetLastTokenMatcher matcher = new ForgetLastTokenMatcher();

    assertThat(matcher.matchToken(tokenQueue, output), is(true));
    assertThat(output.size(), is(0));
    verify(tokenQueue).pushForward(eq(Collections.singletonList(token)));
  }