Пример #1
0
 public ParrotException(Parrot parrot, IParrot_PMC exception)
 {
     this.raw_exception = exception;
     this.msg = exception.ToString();
     this.Parrot = parrot;
     // TODO: Verify that this is an exception PMC
 }
 public static IParrot_PMC ToParrotIntegerPMC(this int arg, Parrot parrot)
 {
     IntPtr pmc_ptr = IntPtr.Zero;
     int result = Parrot_api_pmc_box_integer(parrot.RawPointer, arg, out pmc_ptr);
     if (result != 1)
         parrot.GetErrorResult();
     return new Pmc.Integer(parrot, pmc_ptr);
 }
 public static IParrot_PMC ToParrotStringPMC(this string arg, Parrot parrot)
 {
     IntPtr pmc_ptr = IntPtr.Zero;
     Parrot_String str = new Parrot_String(parrot, arg);
     int result = Parrot_api_pmc_box_string(parrot.RawPointer, str.RawPointer, out pmc_ptr);
     if (result != 1)
         parrot.GetErrorResult();
     return new Pmc.String(parrot, pmc_ptr);
 }
Пример #4
0
 public Parrot_String(Parrot parrot, string str)
     : base(parrot)
 {
     IntPtr pstring = IntPtr.Zero;
     int result = Parrot_api_string_import_ascii(this.Parrot.RawPointer, str, out pstring);
     if (result != 1)
         parrot.GetErrorResult();
     this.ptr = pstring;
 }
Пример #5
0
 public Parrot(Parrot parent, string exename)
 {
     IntPtr raw_parent = parent == null ? IntPtr.Zero : parent.RawPointer;
     IntPtr interp_raw;
     int result = Parrot_api_make_interpreter(raw_parent, 0, IntPtr.Zero, out interp_raw);
     if (result != 1)
         this.GetErrorResult();
     this.Interp = new Pmc.Interpreter(this, interp_raw);
     if (!String.IsNullOrEmpty(exename))
         this.SetExecutableName(exename);
 }
 public static Parrot_PMC ToParrotStringArray(this string[] args, Parrot parrot)
 {
     IntPtr[] argv = new IntPtr[args.Length];
     for (int i = 0; i < args.Length; i++)
         argv[i] = Marshal.StringToHGlobalAnsi(args[i]);
     IntPtr pmc = IntPtr.Zero;
     int result = Parrot_api_pmc_wrap_string_array(parrot.RawPointer, args.Length, argv, out pmc);
     if (result != 1)
         parrot.GetErrorResult();
     return new Pmc.String(parrot, pmc);
 }
Пример #7
0
 public Parrot(Parrot parent)
     : this(parent, null)
 {
 }
Пример #8
0
 public Parrot_String(Parrot parrot, IntPtr ptr)
     : base(parrot, ptr)
 {
     this.raw = IntPtr.Zero;
 }
Пример #9
0
 public Generic(Parrot parrot, IntPtr pmc_ptr)
     : base(parrot, pmc_ptr)
 {
 }
Пример #10
0
 public ParrotPointer(Parrot parrot, IntPtr ptr)
 {
     this.parrot = parrot;
     this.ptr = ptr;
 }
Пример #11
0
 public ParrotPointer(Parrot parrot)
 {
     this.parrot = parrot;
     this.ptr = IntPtr.Zero;
 }
Пример #12
0
 public static void Reset()
 {
     interp = null;
 }
Пример #13
0
 public void CreateParrot_WithParentAndName()
 {
     string exename = AppDomain.CurrentDomain.FriendlyName;
     Parrot parrot = new Parrot(TestManager.Interp, exename);
     Assert.AreNotEqual(IntPtr.Zero, parrot.RawPointer, "Unable to create a new Parrot interpreter");
 }
 public static Parrot_String ToParrotString(this string arg, Parrot parrot)
 {
     return new Parrot_String(parrot, arg);
 }
Пример #15
0
 public ParrotException(Parrot parrot, Parrot_String msg)
 {
     this.msg = msg.ToString();
     this.Parrot = parrot;
     // TODO: Capture the current C# backtrace
 }
Пример #16
0
 public ParrotException(Parrot parrot, string msg)
 {
     this.msg = msg;
     this.Parrot = parrot;
 }
Пример #17
0
 public Parrot_PMC(Parrot parrot, IntPtr ptr)
     : base(parrot, ptr)
 {
 }