Пример #1
0
        public void Switch_Unconditional_ParseCheck()
        {
            LValueRef  valueRef     = new LValueRef(LType.Int32Type(), "%1");
            LLabelType defaultLabel = new LLabelType("%default");
            LSwitch    @switch      = new LSwitch(valueRef, defaultLabel);

            Assert.AreEqual("switch i32 %1, label %default [ ]",
                            LHelper.Trim(@switch.ParseInstruction()));
        }
Пример #2
0
        public void Switch_ParseCheck()
        {
            LValueRef  valueRef     = new LValueRef(LType.Int32Type(), "%1");
            LLabelType defaultLabel = new LLabelType("%default");
            LSwitch    @switch      = new LSwitch(valueRef, defaultLabel);

            @switch.JumpTableDestinations.Add((0, new LLabelType("%one")));
            @switch.JumpTableDestinations.Add((1, new LLabelType("%two")));
            @switch.JumpTableDestinations.Add((2, new LLabelType("%three")));
            @switch.JumpTableDestinations.Add((3, new LLabelType("%four")));

            Assert.AreEqual($"switch i32 %1, label %default [ i32 0, label %one{Environment.NewLine}i32 1, label %two{Environment.NewLine}i32 2, label %three{Environment.NewLine}i32 3, label %four ]",
                            LHelper.Trim(@switch.ParseInstruction()));
        }