code: private void visitParentExpression(AbstractFunctionExpression parentExpr) {
  
          if (nextFunctionBodyStart == null) {
              nextFunctionBodyStart = parentExpr;
          }
  
          if (currentFunctionName != null) {
              updateCurrentFunction(parentExpr);
          } else {
              createFunctionIfNeeded(parentExpr);
          }
  
          if (GremlinQueryOptimizer.isOrExpression(parentExpr)) {
              //reset
              currentFunctionName = null;
              //don't include 'or' in generated functions
              nextFunctionBodyStart = null;
          }
  
      }
docs: Checks to see if the *caller* of this expression should become part
  of a function.  If so, either a new function is created, or the
  expression becomes part of the last function we created.
  
  @param parentExpr