Beispiel #1
0
        public override void mix_env(plt_list arg)
        {
            if (arg_name == null)
            {
                return;
            }
            plt_list env = new plt_list();

            for (int i = 0; i < arg_name._member.Count; i++)
            {
                string   name  = ((plt_symbol)arg_name.get_member(i)).name;
                plt_node value = arg.get_member(i + 1);
                env.set_member(name, value);
            }
            update_all_symbol(exp as plt_list, env);
        }
Beispiel #2
0
 public static void set_all_symbol_env(plt_list e, plt_list env)
 {
     if (e == null)
     {
         return;
     }
     foreach (plt_node i in e._member)
     {
         plt_symbol if_symbol = i as plt_symbol;
         if (if_symbol != null)
         {
             if (env.name_map.ContainsKey(if_symbol.name))
             {
                 if_symbol.point_to = env.get_member(if_symbol.name);
             }
             continue;;
         }
         set_all_symbol_env(i as plt_list, env);
     }
 }
Beispiel #3
0
 public override void mix_env(plt_list arg)
 {
     a = (plt_int)arg.get_member(1);
     b = (plt_int)arg.get_member(2);
 }
Beispiel #4
0
 public static void set_all_symbol_env(plt_list e,plt_list env)
 {
     if (e == null) { return; }
     foreach (plt_node i in e._member)
     {
         plt_symbol if_symbol = i as plt_symbol;
         if (if_symbol != null)
         {
             if (env.name_map.ContainsKey(if_symbol.name))
                 if_symbol.point_to = env.get_member(if_symbol.name);
             continue; ;
         }
         set_all_symbol_env(i as plt_list, env);
     }
 }