PrintNode pn2 = (PrintNode) nodes.get(2);
assertEquals(SyntaxVersion.V2, pn2.getSyntaxVersion());
assertEquals("$goo + 1", pn2.getExprText());
assertEquals(1, pn2.getChildren().size());
PrintDirectiveNode pn2d0 = pn2.getChild(0);
assertEquals(SyntaxVersion.V1, pn2d0.getSyntaxVersion());
assertEquals("|noAutoescape", pn2d0.getName());
assertEquals("XXX", pn2.genBasePlaceholderName());
assertTrue(pn2.getExprUnion().getExpr().getChild(0) instanceof PlusOpNode);
PrintNode pn3 = (PrintNode) nodes.get(3);
assertEquals(SyntaxVersion.V2, pn3.getSyntaxVersion());
assertEquals("'blah blahblahblah'", pn3.getExprText());
assertEquals(2, pn3.getChildren().size());
PrintDirectiveNode pn3d0 = pn3.getChild(0);
assertEquals(SyntaxVersion.V2, pn3d0.getSyntaxVersion());
assertEquals("|escapeHtml", pn3d0.getName());
PrintDirectiveNode pn3d1 = pn3.getChild(1);
assertEquals(SyntaxVersion.V2, pn3d1.getSyntaxVersion());
assertEquals("|insertWordBreaks", pn3d1.getName());
assertEquals(8, ((IntegerNode) pn3d1.getArgs().get(0).getChild(0)).getValue());
assertEquals("XXX", pn3.genBasePlaceholderName());
assertTrue(pn3.getExprUnion().getExpr().getChild(0) instanceof StringNode);
assertFalse(pn0.genSamenessKey().equals(pn2.genSamenessKey()));
assertFalse(pn3.genSamenessKey().equals(pn0.genSamenessKey()));