示例#1
0
 public void visit(ExprNode_ArrayConstructor node)
 {
     m_stmt.ILGenerator.Emit(OpCodes.Newobj, typeof(List <object>).GetConstructor(new Type[] {}));
     if (node.Exprs != null)
     {
         foreach (var expr in node.Exprs)
         {
             m_stmt.ILGenerator.Emit(OpCodes.Dup);
             new ExprNodeVisitor_CodeEmitor(m_stmt, typeof(object), expr);
             m_stmt.ILGenerator.Emit(OpCodes.Callvirt, typeof(List <object>).GetMethod("Add"));
         }
     }
     m_currentType = typeof(object);
 }
示例#2
0
 public void visit(ExprNode_ArrayConstructor node)
 {
     m_stmt.ILGenerator.Emit(OpCodes.Newobj, typeof(List<object>).GetConstructor(new Type[]{}));
     if (node.Exprs != null) {
         foreach (var expr in node.Exprs) {
             m_stmt.ILGenerator.Emit(OpCodes.Dup);
             new ExprNodeVisitor_CodeEmitor(m_stmt, typeof(object), expr);
             m_stmt.ILGenerator.Emit(OpCodes.Callvirt, typeof(List<object>).GetMethod("Add"));
         }
     }
     m_currentType = typeof(object);
 }