Example #1
0
        public void 直前の変数定義オブジェクトを取得できる()
        {
            var ast = JavaCodeToXml.Instance.Generate(
                "{ int i; i = 1; }", p => p.block());
            var codeObject = JavaProgramGeneratorHelper.CreateBlock(ast);

            var variable   = codeObject.Descendants <UnifiedIdentifier>().Last();
            var definition = SemanticAnalyzer.FindDefinition(variable);

            var expected =
                codeObject.Descendants <UnifiedVariableDefinition>().First();

            Assert.That(definition, Is.EqualTo(expected));
        }
Example #2
0
        public void JavascriptBlockProblem()
        {
            var ast = JavaScriptCodeToXml.Instance
                      .Generate(
                "{ i = 0; var j = 0; j = 1; }",
                p => p.statementBlock());
            var codeObject =
                JavaScriptProgramGeneratorHelper.CreateStatementBlock(ast);

            var variable   = codeObject.Descendants <UnifiedIdentifier>().Last();
            var definition = SemanticAnalyzer.FindDefinition(variable);

            Assert.That(definition, Is.EqualTo(null));
        }
Example #3
0
        public void 後方の変数定義を無視して変数定義オブジェクトを取得できる()
        {
            var ast = JavaCodeToXml.Instance
                      .Generate(
                "{ j = 0; { j = 1; } int j; }",
                p => p.block());
            var codeObject = JavaProgramGeneratorHelper.CreateBlock(ast);

            var variable =
                codeObject.Descendants <UnifiedIdentifier>().ElementAt(1);
            var definition = SemanticAnalyzer.FindDefinition(variable);

            Assert.That(definition, Is.EqualTo(null));
        }
Example #4
0
        public void IgnoreSliblingScope()
        {
            var ast = JavaCodeToXml.Instance
                      .Generate(
                "{ {int j = 0;} {j = 1;} }",
                p => p.block());
            var codeObject = JavaProgramGeneratorHelper.CreateBlock(ast);

            var variable =
                codeObject.Descendants <UnifiedIdentifier>().ElementAt(2);
            var definition = SemanticAnalyzer.FindDefinition(variable);

            Assert.That(definition, Is.EqualTo(null));
        }