code: public static boolean walk(SelectedRule walkerRule, TreeBuilder tree) throws Exception
      {
          if (walkerRule == null) throw new IllegalArgumentException("WalkerRule cannot be null, please use rule()");
          if (tree == null) throw new IllegalArgumentException("Tree cannot be null");
          if (AunitRuntime.getTreeParserFactory() == null) throw new IllegalStateException("Walker factory not set by configuration");
  
          TreeParser treeParser = AunitRuntime.getTreeParserFactory().generate(new CommonTreeNodeStream(tree.get()));
  
          RuleReturnScope rs = walkerRule.invoke(treeParser);
  
          TreeParserWrapper wrapper = (TreeParserWrapper)treeParser;
          if (wrapper.isFailOnError() && !wrapper.getErrors().isEmpty())
          {
              throw new ParserException(wrapper.getErrors());
          }
  
          return true;
      }
docs: Parse a set of characters and return an instance of {@link Tree}.
  This tree can then be fed into <code>Assert.assertTree(...)</code>.
  <p/>
  This method will throw an exception if there was an error parsing.  It
  will also throw {@link ParserException} if the parsing failed and the
  test has indicated that the parser should fail on error; see
  {@link ParserOption#failOnError(boolean)}.
  
  @param walkerRule the starting walker rule
  @param tree       the tree to be walked
  @return true on success
  @throws Exception if there is an error during walking
  @see #withRule(String, com.toolazydogs.aunit.Work.ArgumentBuilder)