### Question:
PrecedenceClimbingParser { public Token atom(Object o) { return new Token(Type.ATOM, o, -1, -1); } private  PrecedenceClimbingParser(List<Token> tokens); Token atom(Object o); Call call(Op op, ImmutableList<Token> args); Op infix(Object o, int precedence, boolean left); Op prefix(Object o, int precedence); Op postfix(Object o, int precedence); SpecialOp special(Object o, int leftPrec, int rightPrec,
      Special special); Token parse(); void partialParse(); @Override String toString(); List<Token> all(); String print(Token token); PrecedenceClimbingParser copy(int start, Predicate<Token> predicate);  }### Answer:
@Test public void testAtom() { final PrecedenceClimbingParser p = new PrecedenceClimbingParser.Builder() .atom("a") .build(); final PrecedenceClimbingParser.Token token = p.parse(); assertThat(p.print(token), is("a")); }
@Test void testAtom() { final PrecedenceClimbingParser p = new PrecedenceClimbingParser.Builder() .atom("a") .build(); final PrecedenceClimbingParser.Token token = p.parse(); assertThat(p.print(token), is("a")); }