当前位置: 首页>>代码示例>>C#>>正文


C# CSCodeGenerator.Convert方法代码示例

本文整理汇总了C#中OpenSim.Region.ScriptEngine.Shared.CodeTools.CSCodeGenerator.Convert方法的典型用法代码示例。如果您正苦于以下问题:C# CSCodeGenerator.Convert方法的具体用法?C# CSCodeGenerator.Convert怎么用?C# CSCodeGenerator.Convert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在OpenSim.Region.ScriptEngine.Shared.CodeTools.CSCodeGenerator的用法示例。


在下文中一共展示了CSCodeGenerator.Convert方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Main

    public static void Main(string[] argv) {
        StreamReader s = new StreamReader(argv[0]);
        string source = s.ReadToEnd();

        CSCodeGenerator cscg = new CSCodeGenerator();
        string output = cscg.Convert(source);

        if (1 < argv.Length && "-t" == argv[1])
        {
            Parser p = new LSLSyntax();
            LSL2CSCodeTransformer codeTransformer = new LSL2CSCodeTransformer(p.Parse(source));
            SYMBOL ast = codeTransformer.Transform();
            printThisTree(ast);
        }
        else
            Console.Write(output);
    }
开发者ID:aurora-sim,项目名称:Aurora-Libs,代码行数:17,代码来源:output.cs

示例2: TestDefaultState

        public void TestDefaultState()
        {
            string input = @"default
{
    state_entry()
    {
    }
}
";
            string expected =
                "\n        public void default_event_state_entry()" +
                "\n        {" +
                "\n        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:BackupTheBerlios,项目名称:seleon,代码行数:18,代码来源:CSCodeGeneratorTest.cs

示例3: TestCastAndConcatString

        /// <summary>
        /// Test that a string can be cast to string and another string
        /// concatenated.
        /// </summary>
        //[Test]
        public void TestCastAndConcatString()
        {
            TestHelpers.InMethod();

            m_compilerParameters.OutputAssembly = Path.Combine(m_testDir, Path.GetRandomFileName() + ".dll");

            string input = @"string s = "" a string"";

default
{
    state_entry()
    {
        key gAvatarKey = llDetectedKey(0);
        string tmp = (string) gAvatarKey + s;
        llSay(0, tmp);
    }
}";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = "using OpenSim.Region.ScriptEngine.Shared; using System.Collections.Generic;\n" +
                            "namespace SecondLife { " +
                            "public class Script : OpenSim.Region.ScriptEngine.Shared.ScriptBase.ScriptBaseClass {\n" +
                            "public Script() { } " +
                            cg.Convert(input) +
                            "} }\n";
            m_compilerResults = m_CSCodeProvider.CompileAssemblyFromSource(m_compilerParameters, output);

            Assert.AreEqual(0, m_compilerResults.Errors.Count);
        }
开发者ID:JAllard,项目名称:opensim,代码行数:34,代码来源:CompilerTest.cs

示例4: TestWhileLoop

        public void TestWhileLoop()
        {
            TestHelpers.InMethod();

            string input = @"// let's test while loops

default
{
    touch_start(integer num_detected)
    {
        integer x = 1;
        integer y = 0;

        while (x) llSay(0, ""To infinity, and beyond!"");
        while (0 || (x && 0))
        {
            llSay(0, ""Never say never."");
            return;
        }
    }
}
";
            string expected =
                "\n        public void default_event_touch_start(LSL_Types.LSLInteger num_detected)" +
                "\n        {" +
                "\n            LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(1);" +
                "\n            LSL_Types.LSLInteger y = new LSL_Types.LSLInteger(0);" +
                "\n            while (x)" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"To infinity, and beyond!\"));" +
                "\n            while (((bool)(new LSL_Types.LSLInteger(0))) | ((bool)((((bool)(x)) & ((bool)(new LSL_Types.LSLInteger(0)))))))" +
                "\n            {" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"Never say never.\"));" +
                "\n                return ;" +
                "\n            }" +
                "\n        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:40,代码来源:CSCodeGeneratorTest.cs

示例5: TestIfStatement


//.........这里部分代码省略.........
            string input = @"// let's test if statements

default
{
    touch_start(integer num_detected)
    {
        integer x = 1;

        if (x) llSay(0, ""Hello"");
        if (1)
        {
            llSay(0, ""Hi"");
            integer r = 3;
            return;
        }

        if (f(x)) llSay(0, ""f(x) is true"");
        else llSay(0, ""f(x) is false"");

        if (x + y) llSay(0, ""x + y is true"");
        else if (y - x) llSay(0, ""y - x is true"");
        else llSay(0, ""Who needs x and y anyway?"");

        if (x * y) llSay(0, ""x * y is true"");
        else if (y / x)
        {
            llSay(0, ""uh-oh, y / x is true, exiting"");
            return;
        }
        else llSay(0, ""Who needs x and y anyway?"");

        // and now for my last trick
        if (x % y) llSay(0, ""x is true"");
        else if (y & x) llSay(0, ""y is true"");
        else if (z | x) llSay(0, ""z is true"");
        else if (a * (b + x)) llSay(0, ""a is true"");
        else if (b) llSay(0, ""b is true"");
        else if (v) llSay(0, ""v is true"");
        else llSay(0, ""Everything is lies!"");
    }
}
";
            string expected =
                "\n        public void default_event_touch_start(LSL_Types.LSLInteger num_detected)" +
                "\n        {" +
                "\n            LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(1);" +
                "\n            if (x)" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"Hello\"));" +
                "\n            if (new LSL_Types.LSLInteger(1))" +
                "\n            {" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"Hi\"));" +
                "\n                LSL_Types.LSLInteger r = new LSL_Types.LSLInteger(3);" +
                "\n                return ;" +
                "\n            }" +
                "\n            if (f(x))" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"f(x) is true\"));" +
                "\n            else" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"f(x) is false\"));" +
                "\n            if (x + y)" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"x + y is true\"));" +
                "\n            else" +
                "\n            if (y - x)" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"y - x is true\"));" +
                "\n            else" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"Who needs x and y anyway?\"));" +
                "\n            if (x * y)" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"x * y is true\"));" +
                "\n            else" +
                "\n            if (y / x)" +
                "\n            {" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"uh-oh, y / x is true, exiting\"));" +
                "\n                return ;" +
                "\n            }" +
                "\n            else" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"Who needs x and y anyway?\"));" +
                "\n            if (x % y)" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"x is true\"));" +
                "\n            else" +
                "\n            if (y & x)" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"y is true\"));" +
                "\n            else" +
                "\n            if (z | x)" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"z is true\"));" +
                "\n            else" +
                "\n            if (a * (b + x))" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"a is true\"));" +
                "\n            else" +
                "\n            if (b)" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"b is true\"));" +
                "\n            else" +
                "\n            if (v)" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"v is true\"));" +
                "\n            else" +
                "\n                llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(\"Everything is lies!\"));" +
                "\n        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:101,代码来源:CSCodeGeneratorTest.cs

示例6: TestIncrementDecrementOperator

        public void TestIncrementDecrementOperator()
        {
            TestHelpers.InMethod();

            string input = @"// here we'll test the ++ and -- operators

default
{
    touch_start(integer num_detected)
    {
        integer y = -3;
        integer x = 14 + 6;
        y = 12 +45+20+x++ + (23 + 1) + ++x + --    y;
        y = (12 + -45 + -20 + x-- + 23 )+ -1 + x -- + ++y;
    }
}
";
            string expected =
                "\n        public void default_event_touch_start(LSL_Types.LSLInteger num_detected)" +
                "\n        {" +
                "\n            LSL_Types.LSLInteger y = -new LSL_Types.LSLInteger(3);" +
                "\n            LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(14) + new LSL_Types.LSLInteger(6);" +
                "\n            y = new LSL_Types.LSLInteger(12) + new LSL_Types.LSLInteger(45) + new LSL_Types.LSLInteger(20) + x++ + (new LSL_Types.LSLInteger(23) + new LSL_Types.LSLInteger(1)) + ++x + --y;" +
                "\n            y = (new LSL_Types.LSLInteger(12) + -new LSL_Types.LSLInteger(45) + -new LSL_Types.LSLInteger(20) + x-- + new LSL_Types.LSLInteger(23)) + -new LSL_Types.LSLInteger(1) + x-- + ++y;" +
                "\n        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:30,代码来源:CSCodeGeneratorTest.cs

示例7: TestCustomState

        public void TestCustomState()
        {
            TestHelpers.InMethod();

            string input = @"default
{
    state_entry()
    {
    }
}

state another_state
{
    no_sensor()
    {
    }
}
";
            string expected =
                "\n        public void default_event_state_entry()" +
                "\n        {" +
                "\n        }" +
                "\n        public void another_state_event_no_sensor()" +
                "\n        {" +
                "\n        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:30,代码来源:CSCodeGeneratorTest.cs

示例8: TestVectorConstantNotation

        public void TestVectorConstantNotation()
        {
            TestHelpers.InMethod();

            string input = @"default
{
    touch_start(integer num_detected)
    {
        vector y = <1.2, llGetMeAFloat(), 4.4>;
        rotation x = <0.1, 0.1, one + 2, 0.9>;

        y = <0.1, 0.1, 1.1 - three - two+eight*8>;
    }
}
";
            string expected =
                "\n        public void default_event_touch_start(LSL_Types.LSLInteger num_detected)" +
                "\n        {" +
                "\n            LSL_Types.Vector3 y = new LSL_Types.Vector3(new LSL_Types.LSLFloat(1.2), llGetMeAFloat(), new LSL_Types.LSLFloat(4.4));" +
                "\n            LSL_Types.Quaternion x = new LSL_Types.Quaternion(new LSL_Types.LSLFloat(0.1), new LSL_Types.LSLFloat(0.1), one + new LSL_Types.LSLInteger(2), new LSL_Types.LSLFloat(0.9));" +
                "\n            y = new LSL_Types.Vector3(new LSL_Types.LSLFloat(0.1), new LSL_Types.LSLFloat(0.1), new LSL_Types.LSLFloat(1.1) - three - two + eight * new LSL_Types.LSLInteger(8));" +
                "\n        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:27,代码来源:CSCodeGeneratorTest.cs

示例9: TestAdditionSubtractionOperator

        public void TestAdditionSubtractionOperator()
        {
            TestHelpers.InMethod();

            string input = @"default
{
    touch_start(integer num_detected)
    {
        integer y = -3;
        integer x = 14 + 6;
        y = 12 +45+20+x + 23 + 1 + x + y;
        y = 12 + -45 + -   20 + x + 23 + -1 + x + y;
    }
}
";
            string expected =
                "\n        public void default_event_touch_start(LSL_Types.LSLInteger num_detected)\n" +
                "        {\n" +
                "            LSL_Types.LSLInteger y = -new LSL_Types.LSLInteger(3);\n" +
                "            LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(14) + new LSL_Types.LSLInteger(6);\n" +
                "            y = new LSL_Types.LSLInteger(12) + new LSL_Types.LSLInteger(45) + new LSL_Types.LSLInteger(20) + x + new LSL_Types.LSLInteger(23) + new LSL_Types.LSLInteger(1) + x + y;\n" +
                "            y = new LSL_Types.LSLInteger(12) + -new LSL_Types.LSLInteger(45) + -new LSL_Types.LSLInteger(20) + x + new LSL_Types.LSLInteger(23) + -new LSL_Types.LSLInteger(1) + x + y;\n" +
                "        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:28,代码来源:CSCodeGeneratorTest.cs

示例10: TestSyntaxErrorDeclaringVariableInForLoop

        public void TestSyntaxErrorDeclaringVariableInForLoop()
        {
            TestHelpers.InMethod();

            bool gotException = false;

            string input = @"default
{
    state_entry()
    {
        for (integer x = 0; x < 10; x++) llOwnerSay(""x is: "" + (string) x);
    }
}
";
            try
            {
                CSCodeGenerator cg = new CSCodeGenerator();
                cg.Convert(input);
            }
            catch (System.Exception e)
            {
                // The syntax error is on line 4, char 13 (Syntax error)
                Assert.AreEqual("(4,13) syntax error", e.Message);

                gotException = true;
            }

            Assert.That(gotException, Is.True);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:29,代码来源:CSCodeGeneratorTest.cs

示例11: TestSyntaxError

        public void TestSyntaxError()
        {
            TestHelpers.InMethod();

            bool gotException = false;

            string input = @"default
{
    state_entry()
    {
        integer y
    }
}
";
            try
            {
                CSCodeGenerator cg = new CSCodeGenerator();
                cg.Convert(input);
            }
            catch (System.Exception e)
            {
                // The syntax error is on line 5, char 4 (expected ';', found
                // '}').
                Assert.AreEqual("(5,4) syntax error", e.Message);
                gotException = true;
            }

            Assert.That(gotException, Is.True);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:29,代码来源:CSCodeGeneratorTest.cs

示例12: TestLSLListHack

        public void TestLSLListHack()
        {
            TestHelpers.InMethod();

            string input = @"default
{
    state_entry()
    {
        list l = [""hello""];
        l = (l=[]) + l + ""world"";
    }
}";

            string expected =
                "\n        public void default_event_state_entry()" +
                "\n        {" +
                "\n            LSL_Types.list l = new LSL_Types.list(new LSL_Types.LSLString(\"hello\"));" +
                "\n            l = (l = new LSL_Types.list()) + l + new LSL_Types.LSLString(\"world\");" +
                "\n        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:24,代码来源:CSCodeGeneratorTest.cs

示例13: TestAssignments

        public void TestAssignments()
        {
            TestHelpers.InMethod();

            string input = @"default
{
    touch_start(integer num_detected)
    {
        string y;
        integer x = 14;
        y = ""Hello"";
    }
}
";
            string expected =
                "\n        public void default_event_touch_start(LSL_Types.LSLInteger num_detected)" +
                "\n        {" +
                "\n            LSL_Types.LSLString y = new LSL_Types.LSLString(\"\");" +
                "\n            LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(14);" +
                "\n            y = new LSL_Types.LSLString(\"Hello\");" +
                "\n        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:26,代码来源:CSCodeGeneratorTest.cs

示例14: TestAssignmentInIfWhileDoWhile

        public void TestAssignmentInIfWhileDoWhile()
        {
            TestHelpers.InMethod();

            string input = @"default
{
    state_entry()
    {
        integer x;

        while (x = 14) llOwnerSay(""x is: "" + (string) x);

        if (x = 24) llOwnerSay(""x is: "" + (string) x);

        do
            llOwnerSay(""x is: "" + (string) x);
        while (x = 44);
    }
}";

            string expected =
                "\n        public void default_event_state_entry()" +
                "\n        {" +
                "\n            LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(0);" +
                "\n            while (x = new LSL_Types.LSLInteger(14))" +
                "\n                llOwnerSay(new LSL_Types.LSLString(\"x is: \") + (LSL_Types.LSLString) (x));" +
                "\n            if (x = new LSL_Types.LSLInteger(24))" +
                "\n                llOwnerSay(new LSL_Types.LSLString(\"x is: \") + (LSL_Types.LSLString) (x));" +
                "\n            do" +
                "\n                llOwnerSay(new LSL_Types.LSLString(\"x is: \") + (LSL_Types.LSLString) (x));" +
                "\n            while (x = new LSL_Types.LSLInteger(44));" +
                "\n        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:37,代码来源:CSCodeGeneratorTest.cs

示例15: TestForLoopWithOnlyIdentInAssignment

        public void TestForLoopWithOnlyIdentInAssignment()
        {
            TestHelpers.InMethod();

            string input = @"default
{
    state_entry()
    {
        integer x = 4;
        for (x; 1<0; x += 2);
    }
}";

            string expected =
                "\n        public void default_event_state_entry()" +
                "\n        {" +
                "\n            LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(4);" +
                "\n            for (; new LSL_Types.LSLInteger(1) < new LSL_Types.LSLInteger(0); x += new LSL_Types.LSLInteger(2))" +
                "\n                ;" +
                "\n        }\n";

            CSCodeGenerator cg = new CSCodeGenerator();
            string output = cg.Convert(input);
            Assert.AreEqual(expected, output);
        }
开发者ID:CassieEllen,项目名称:opensim,代码行数:25,代码来源:CSCodeGeneratorTest.cs


注:本文中的OpenSim.Region.ScriptEngine.Shared.CodeTools.CSCodeGenerator.Convert方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。