public static <R> void execOnAllV2Exprs(
      SoyNode node, final AbstractNodeVisitor<ExprNode, R> exprNodeVisitor) {
    visitAllNodes(
        node,
        new NodeVisitor<Node, VisitDirective>() {
          @Override
          public VisitDirective exec(Node node) {
            if (node instanceof ExprHolderNode) {
              for (ExprRootNode expr : ((ExprHolderNode) node).getExprList()) {
                exprNodeVisitor.exec(expr);
              }
            } else if (node instanceof ExprNode) {
              return VisitDirective.SKIP_CHILDREN;
            }
            return VisitDirective.CONTINUE;
          }
        });
  }
public static < R > void execOnAllV2Exprs ( SoyNode node , final AbstractNodeVisitor < ExprNode , R > exprNodeVisitor ) { visitAllNodes ( node , new NodeVisitor < Node , VisitDirective > ( ) { @ Override public VisitDirective exec ( Node node ) { if ( node instanceof ExprHolderNode ) { for ( ExprRootNode expr : ( ( ExprHolderNode ) node ) . getExprList ( ) ) { exprNodeVisitor . exec ( expr ) ; } } else if ( node instanceof ExprNode ) { return VisitDirective . SKIP_CHILDREN ; } return VisitDirective . CONTINUE ; } } ) ; }
Given a Soy node and a visitor for expression trees, traverses the subtree of the node and
executes the visitor on all expressions held by nodes in the subtree.

<p>Only processes expressions in V2 syntax. Ignores all expressions in V1 syntax.

@param <R> The ExprNode visitor's return type.
@param node The root of the subtree to visit all expressions in.
@param exprNodeVisitor The visitor to execute on all expressions.