code: public Rule DefinitionList() {
          return NodeSequence(
                  // test for successful definition list match before actually building it to reduce backtracking
                  TestNot(Spacechar()),
                  Test(
                          OneOrMore(TestNot(BlankLine()), TestNot(DefListBullet()),
                                  OneOrMore(NotNewline(), ANY), Newline()),
                          ZeroOrMore(BlankLine()),
                          DefListBullet()
                  ),
                  push(new DefinitionListNode()),
                  OneOrMore(
                          push(new SuperNode()),
                          OneOrMore(DefListTerm(), addAsChild()),
                          OneOrMore(Definition(), addAsChild()),
                          ((SuperNode)peek(1)).getChildren().addAll(popAsNode().getChildren()),
                          Optional(BlankLine())
                  )
          );
      }
docs: ************** Definition Lists ************