public static Map<ASTNode, ExprNodeDesc> genExprNode(ASTNode expr, TypeCheckCtx tcCtx)
      throws SemanticException {
    TypeCheckProcFactory<ExprNodeDesc> factory =
        new TypeCheckProcFactory<>(new ExprNodeDescExprFactory());
    return factory.genExprNode(expr, tcCtx);
  }
Given an AST expression and a context, it will produce a map from AST nodes
to Hive ExprNode.
ql/src/java/org/apache/hadoop/hive/ql/parse/type/ExprNodeTypeCheck.java