@Test public void testNested() throws Exception { { Parser p = new Parser("%top %(%child%(%h))"); Node t = p.parse(); Node witness = new KeywordNode("top"); Node w = witness.next = new Node(Node.LITERAL, " "); CompositeNode composite = new CompositeNode(); w = w.next = composite; Node child = new KeywordNode("child"); composite.setChildNode(child); composite = new CompositeNode(); child.next = composite; composite.setChildNode(new KeywordNode("h")); assertEquals(witness, t); } }
@Test public void testCompositeFormatting() throws Exception { { Parser p = new Parser("hello%5(XYZ)"); Node t = p.parse(); Node witness = new Node(Node.LITERAL, "hello"); CompositeNode composite = new CompositeNode(); composite.setFormatInfo(new FormatInfo(5, Integer.MAX_VALUE)); Node child = new Node(Node.LITERAL, "XYZ"); composite.setChildNode(child); witness.next = composite; assertEquals(witness, t); } }
@Test public void testComposite() throws Exception { { Parser p = new Parser("hello%(%child)"); Node t = p.parse(); Node witness = new Node(Node.LITERAL, "hello"); CompositeNode composite = new CompositeNode(); Node child = new KeywordNode("child"); composite.setChildNode(child); witness.next = composite; // System.out.println("w:" + witness); // System.out.println(t); assertEquals(witness, t); } // System.out.println("testRecursive part 2"); { Parser p = new Parser("hello%(%child )"); Node t = p.parse(); Node witness = new Node(Node.LITERAL, "hello"); CompositeNode composite = new CompositeNode(); Node child = new KeywordNode("child"); composite.setChildNode(child); witness.next = composite; child.next = new Node(Node.LITERAL, " "); assertEquals(witness, t); } { Parser p = new Parser("hello%(%child %h)"); Node t = p.parse(); Node witness = new Node(Node.LITERAL, "hello"); CompositeNode composite = new CompositeNode(); Node child = new KeywordNode("child"); composite.setChildNode(child); child.next = new Node(Node.LITERAL, " "); child.next.next = new KeywordNode("h"); witness.next = composite; assertEquals(witness, t); } { Parser p = new Parser("hello%(%child %h) %m"); Node t = p.parse(); Node witness = new Node(Node.LITERAL, "hello"); CompositeNode composite = new CompositeNode(); Node child = new KeywordNode("child"); composite.setChildNode(child); child.next = new Node(Node.LITERAL, " "); child.next.next = new KeywordNode("h"); witness.next = composite; composite.next = new Node(Node.LITERAL, " "); composite.next.next = new KeywordNode("m"); assertEquals(witness, t); } { Parser p = new Parser("hello%( %child \\(%h\\) ) %m"); Node t = p.parse(); Node witness = new Node(Node.LITERAL, "hello"); CompositeNode composite = new CompositeNode(); Node child = new Node(Node.LITERAL, " "); composite.setChildNode(child); Node c = child; c = c.next = new KeywordNode("child"); c = c.next = new Node(Node.LITERAL, " ("); c = c.next = new KeywordNode("h"); c = c.next = new Node(Node.LITERAL, ") "); witness.next = composite; composite.next = new Node(Node.LITERAL, " "); composite.next.next = new KeywordNode("m"); assertEquals(witness, t); } }