Ejemplo n.º 1
0
        int line;                               /* line number for this node's start */


        protected data_node()
        {
            line          = 0;
            m_next        = null;
            m_first_child = null;
            m_name        = "";
            m_value       = "";
            m_parent      = null;
            m_attributes  = new std.list <attribute_node>();
        }
Ejemplo n.º 2
0
        protected data_node(data_node parent, string name, string value)
        {
            line          = 0;
            m_next        = null;
            m_first_child = null;
            m_name        = name;
            m_value       = value != null ? value : "";
            m_parent      = parent;
            m_attributes  = new std.list <attribute_node>();


            m_name = m_name.ToLower();  //std::transform(m_name.begin(), m_name.end(), m_name.begin(), [] (char ch) { return std::tolower(uint8_t(ch)); });
        }
Ejemplo n.º 3
0
        string m_string_buffer;  //mutable util::ovectorstream m_string_buffer;


        // construction/destruction

        //-------------------------------------------------
        //  running_machine - constructor
        //-------------------------------------------------
        public running_machine(machine_config _config, machine_manager manager)
        {
            m_side_effects_disabled = 0;
            debug_flags             = 0;
            m_config                 = _config;
            m_system                 = _config.gamedrv();
            m_manager                = manager;
            m_current_phase          = machine_phase.PREINIT;
            m_paused                 = false;
            m_hard_reset_pending     = false;
            m_exit_pending           = false;
            m_soft_reset_timer       = null;
            m_rand_seed              = 0x9d14abd7;
            m_ui_active              = _config.options().ui_active();
            m_basename               = _config.gamedrv().name;
            m_sample_rate            = _config.options().sample_rate();
            m_saveload_schedule      = saveload_schedule.NONE;
            m_saveload_schedule_time = attotime.zero;
            m_saveload_searchpath    = null;

            m_save      = new save_manager(this);
            m_memory    = new memory_manager(this);
            m_ioport    = new ioport_manager(this);
            m_scheduler = new device_scheduler(this);
            m_scheduler.device_scheduler_after_ctor(this);


            for (int i = 0; i < m_notifier_list.Length; i++)
            {
                m_notifier_list[i] = new std.list <notifier_callback_item>();
            }

            m_base_time = 0;

            // set the machine on all devices
            device_enumerator iter = new device_enumerator(root_device());

            foreach (device_t device in iter)
            {
                device.set_machine(this);
            }

            // fetch core options
            if (options().debug())
            {
                debug_flags = (DEBUG_FLAG_ENABLED | DEBUG_FLAG_CALL_HOOK) | (DEBUG_FLAG_OSD_ENABLED);
            }
        }
Ejemplo n.º 4
0
        public void CheckDefaultTestCase()
        {
            StackFrame         frame  = GetFrame($"{DefaultModuleName}!DefaultTestCase");
            VariableCollection locals = frame.Locals;
            dynamic            p      = locals["p"];

            std.wstring string1 = new std.wstring(p.string1);
            Assert.Equal("qwerty", string1.Text);
            std.list <std.wstring>                       strings     = new std.list <std.wstring>(p.strings);
            std.vector <std.@string>                     ansiStrings = new std.vector <std.@string>(p.ansiStrings);
            std.map <std.wstring, std.@string>           stringMap   = new std.map <std.wstring, std.@string>(p.stringMap);
            std.unordered_map <std.wstring, std.@string> stringUMap  = new std.unordered_map <std.wstring, std.@string>(p.stringUMap);

            string[] stringsConverted     = strings.Select(s => s.Text).ToArray();
            string[] ansiStringsConverted = ansiStrings.Select(s => s.Text).ToArray();

            CompareArrays(new[] { "Foo", "Bar" }, stringsConverted);
            CompareArrays(new[] { "AnsiFoo", "AnsiBar" }, ansiStringsConverted);

            foreach (std.wstring s in strings)
            {
                Assert.True(s.Length <= s.Reserved);
            }
            for (int i = 0; i < ansiStrings.Count; i++)
            {
                Assert.True(ansiStrings[i].Length <= ansiStrings[i].Reserved);
            }

            VerifyMap(stringMap);
            VerifyMap(stringUMap);

            // Verify enum value
            dynamic e = locals["e"];

            Assert.Equal("enumEntry3", e.ToString());
            Assert.Equal(3, (int)e);

            dynamic pEnumeration      = p.enumeration;
            dynamic pInnerEnumeration = p.innerEnumeration;

            Assert.Equal("enumEntry2", pEnumeration.ToString());
            Assert.Equal(2, (int)pEnumeration);
            Assert.Equal("simple4", pInnerEnumeration.ToString());
            Assert.Equal(4, (int)pInnerEnumeration);
        }
Ejemplo n.º 5
0
        public void CheckDefaultTestCaseLocals()
        {
            StackFrame         frame  = GetFrame($"{DefaultModuleName}!DefaultTestCase");
            VariableCollection locals = frame.Locals;
            dynamic            p      = locals["p"];

            std.wstring string1 = new std.wstring(p.string1);
            Assert.AreEqual("qwerty", string1.Text);
            std.list <std.wstring>                       strings     = new std.list <std.wstring>(p.strings);
            std.vector <std.@string>                     ansiStrings = new std.vector <std.@string>(p.ansiStrings);
            std.map <std.wstring, std.@string>           stringMap   = new std.map <std.wstring, std.@string>(p.stringMap);
            std.unordered_map <std.wstring, std.@string> stringUMap  = new std.unordered_map <std.wstring, std.@string>(p.stringUMap);

            string[] stringsConverted     = strings.Select(s => s.Text).ToArray();
            string[] ansiStringsConverted = ansiStrings.Select(s => s.Text).ToArray();

            CompareArrays(new[] { "Foo", "Bar" }, stringsConverted);
            CompareArrays(new[] { "AnsiFoo", "AnsiBar" }, ansiStringsConverted);

            foreach (std.wstring s in strings)
            {
                Assert.IsTrue(s.Length <= s.Reserved);
            }
            for (int i = 0; i < ansiStrings.Count; i++)
            {
                Assert.IsTrue(ansiStrings[i].Length <= ansiStrings[i].Reserved);
            }

            VerifyMap(stringMap);
            VerifyMap(stringUMap);

            // Verify enum value
            dynamic e = locals["e"];

            Assert.AreEqual("enumEntry3", e.ToString());
            Assert.AreEqual(3, (int)e);

            // Verify shared/weak pointers
            std.shared_ptr <int> sptr1  = new std.shared_ptr <int>(locals["sptr1"]);
            std.shared_ptr <int> esptr1 = new std.shared_ptr <int>(locals["esptr1"]);
            std.shared_ptr <int> esptr2 = new std.shared_ptr <int>(locals["esptr2"]);
            std.weak_ptr <int>   wptr1  = new std.weak_ptr <int>(locals["wptr1"]);
            std.weak_ptr <int>   ewptr1 = new std.weak_ptr <int>(locals["ewptr1"]);
            std.weak_ptr <int>   ewptr2 = new std.weak_ptr <int>(locals["ewptr2"]);

            Assert.IsFalse(sptr1.IsEmpty);
            Assert.AreEqual(1, sptr1.SharedCount);
            Assert.AreEqual(2, sptr1.WeakCount);
            Assert.AreEqual(5, sptr1.Element);
            Assert.IsTrue(sptr1.IsCreatedWithMakeShared);

            Assert.IsFalse(wptr1.IsEmpty);
            Assert.AreEqual(1, wptr1.SharedCount);
            Assert.AreEqual(2, wptr1.WeakCount);
            Assert.AreEqual(5, wptr1.Element);
            Assert.IsTrue(wptr1.IsCreatedWithMakeShared);

            Assert.IsTrue(esptr1.IsEmpty);

            Assert.IsTrue(ewptr1.IsEmpty);
            Assert.AreEqual(0, ewptr1.SharedCount);
            Assert.AreEqual(1, ewptr1.WeakCount);
            Assert.AreEqual(42, ewptr1.UnsafeElement);
            Assert.IsTrue(ewptr1.IsCreatedWithMakeShared);

            Assert.IsTrue(esptr2.IsEmpty);

            Assert.IsTrue(ewptr2.IsEmpty);
            Assert.AreEqual(0, ewptr2.SharedCount);
            Assert.AreEqual(1, ewptr2.WeakCount);
            Assert.IsFalse(ewptr2.IsCreatedWithMakeShared);
        }
Ejemplo n.º 6
0
        public void CheckDefaultTestCase()
        {
            StackFrame         frame  = GetFrame($"{DefaultModuleName}!DefaultTestCase");
            VariableCollection locals = frame.Locals;
            dynamic            p      = locals["p"];

            std.wstring string1 = new std.wstring(p.string1);
            Assert.Equal("qwerty", string1.Text);
            std.list <std.wstring>                       strings     = new std.list <std.wstring>(p.strings);
            std.vector <std.@string>                     ansiStrings = new std.vector <std.@string>(p.ansiStrings);
            std.map <std.wstring, std.@string>           stringMap   = new std.map <std.wstring, std.@string>(p.stringMap);
            std.unordered_map <std.wstring, std.@string> stringUMap  = new std.unordered_map <std.wstring, std.@string>(p.stringUMap);

            string[] stringsConverted     = strings.Select(s => s.Text).ToArray();
            string[] ansiStringsConverted = ansiStrings.Select(s => s.Text).ToArray();

            CompareArrays(new[] { "Foo", "Bar" }, stringsConverted);
            CompareArrays(new[] { "AnsiFoo", "AnsiBar" }, ansiStringsConverted);

            foreach (std.wstring s in strings)
            {
                Assert.True(s.Length <= s.Reserved);
            }
            for (int i = 0; i < ansiStrings.Count; i++)
            {
                Assert.True(ansiStrings[i].Length <= ansiStrings[i].Reserved);
            }

            VerifyMap(stringMap);
            VerifyMap(stringUMap);

            // Verify enum value
            dynamic e = locals["e"];

            Assert.Equal("enumEntry3", e.ToString());
            Assert.Equal(3, (int)e);

            dynamic pEnumeration      = p.enumeration;
            dynamic pInnerEnumeration = p.innerEnumeration;

            Assert.Equal("enumEntry2", pEnumeration.ToString());
            Assert.Equal(2, (int)pEnumeration);
            Assert.Equal("simple4", pInnerEnumeration.ToString());
            Assert.Equal(4, (int)pInnerEnumeration);

            if (ExecuteCodeGen)
            {
                InterpretInteractive($@"
MyTestClass global = ModuleGlobals.globalVariable;
AreEqual(1212121212, MyTestClass.staticVariable);
AreEqual(""qwerty"", global.string1.Text);
AreEqual(2, global.strings.Count);
AreEqual(""Foo"", global.strings.ElementAt(0).Text);
AreEqual(""Bar"", global.strings.ElementAt(1).Text);
AreEqual(2, global.ansiStrings.Count);
AreEqual(""AnsiFoo"", global.ansiStrings[0].Text);
AreEqual(""AnsiBar"", global.ansiStrings[1].Text);
AreEqual(MyEnum.enumEntry2, global.enumeration);
AreEqual(MyTestClass.MyEnumInner.simple4, global.innerEnumeration);
                    ");
            }
        }
Ejemplo n.º 7
0
        public void CheckDefaultTestCaseLocals()
        {
            StackFrame frame = GetFrame($"{DefaultModuleName}!DefaultTestCase");
            VariableCollection locals = frame.Locals;
            dynamic p = locals["p"];
            std.wstring string1 = new std.wstring(p.string1);
            Assert.AreEqual("qwerty", string1.Text);
            std.list<std.wstring> strings = new std.list<std.wstring>(p.strings);
            std.vector<std.@string> ansiStrings = new std.vector<std.@string>(p.ansiStrings);
            std.map<std.wstring, std.@string> stringMap = new std.map<std.wstring, std.@string>(p.stringMap);
            std.unordered_map<std.wstring, std.@string> stringUMap = new std.unordered_map<std.wstring, std.@string>(p.stringUMap);

            string[] stringsConverted = strings.Select(s => s.Text).ToArray();
            string[] ansiStringsConverted = ansiStrings.Select(s => s.Text).ToArray();

            CompareArrays(new[] { "Foo", "Bar" }, stringsConverted);
            CompareArrays(new[] { "AnsiFoo", "AnsiBar" }, ansiStringsConverted);

            foreach (std.wstring s in strings)
                Assert.IsTrue(s.Length <= s.Reserved);
            for (int i = 0; i < ansiStrings.Count; i++)
                Assert.IsTrue(ansiStrings[i].Length <= ansiStrings[i].Reserved);

            VerifyMap(stringMap);
            VerifyMap(stringUMap);

            // Verify enum value
            dynamic e = locals["e"];

            Assert.AreEqual("enumEntry3", e.ToString());
            Assert.AreEqual(3, (int)e);

            // Verify shared/weak pointers
            std.shared_ptr<int> sptr1 = new std.shared_ptr<int>(locals["sptr1"]);
            std.shared_ptr<int> esptr1 = new std.shared_ptr<int>(locals["esptr1"]);
            std.shared_ptr<int> esptr2 = new std.shared_ptr<int>(locals["esptr2"]);
            std.weak_ptr<int> wptr1 = new std.weak_ptr<int>(locals["wptr1"]);
            std.weak_ptr<int> ewptr1 = new std.weak_ptr<int>(locals["ewptr1"]);
            std.weak_ptr<int> ewptr2 = new std.weak_ptr<int>(locals["ewptr2"]);

            Assert.IsFalse(sptr1.IsEmpty);
            Assert.AreEqual(1, sptr1.SharedCount);
            Assert.AreEqual(2, sptr1.WeakCount);
            Assert.AreEqual(5, sptr1.Element);
            Assert.IsTrue(sptr1.IsCreatedWithMakeShared);

            Assert.IsFalse(wptr1.IsEmpty);
            Assert.AreEqual(1, wptr1.SharedCount);
            Assert.AreEqual(2, wptr1.WeakCount);
            Assert.AreEqual(5, wptr1.Element);
            Assert.IsTrue(wptr1.IsCreatedWithMakeShared);

            Assert.IsTrue(esptr1.IsEmpty);

            Assert.IsTrue(ewptr1.IsEmpty);
            Assert.AreEqual(0, ewptr1.SharedCount);
            Assert.AreEqual(1, ewptr1.WeakCount);
            Assert.AreEqual(42, ewptr1.UnsafeElement);
            Assert.IsTrue(ewptr1.IsCreatedWithMakeShared);

            Assert.IsTrue(esptr2.IsEmpty);

            Assert.IsTrue(ewptr2.IsEmpty);
            Assert.AreEqual(0, ewptr2.SharedCount);
            Assert.AreEqual(1, ewptr2.WeakCount);
            Assert.IsFalse(ewptr2.IsCreatedWithMakeShared);
        }