コード例 #1
0
        public void VarX42()
        {
            const string code = "var x = 42";

            var tree = new Esprima().Parse(code);

            // =================================== ToString
            Assert.AreEqual("var x = 42; ", tree.ToString());

            // =================================== Program
            // - range
            VerifyRange(tree, 0, 10);
            // - loc
            VerifyLocation(tree, 1, 0, 1, 10);

            Assert.AreEqual(1, tree.Body.Count);

            // =================================== VariableDeclaration
            Assert.IsTrue(tree.Body[0] is VariableDeclaration);
            var declaration = (VariableDeclaration)tree.Body[0];

            // - range
            VerifyRange(declaration, 0, 10);
            // - loc
            VerifyLocation(declaration, 1, 0, 1, 10);

            Assert.AreEqual("var", declaration.Kind);

            // =================================== VariableDeclarator
            Assert.IsTrue(tree.Body[0].Declarations[0] is VariableDeclarator);
            var var1 = (VariableDeclarator)tree.Body[0].Declarations[0];

            Assert.IsNotNull(var1.Init);
            // - range
            VerifyRange(var1, 4, 10);
            // - loc
            VerifyLocation(var1, 1, 4, 1, 10);

            // =================================== Identifier
            Assert.IsTrue(tree.Body[0].Declarations[0].Id is Identifier);
            var id1 = (Identifier)tree.Body[0].Declarations[0].Id;

            Assert.AreEqual("x", id1.ToString());

            // - range
            VerifyRange(id1, 4, 5);
            // - loc
            VerifyLocation(id1, 1, 4, 1, 5);

            // =================================== Literal
            Assert.IsTrue(tree.Body[0].Declarations[0].Init is Literal);
            var init1 = (Literal)tree.Body[0].Declarations[0].Init;

            Assert.AreEqual("42", init1.ToString());

            // - range
            VerifyRange(init1, 8, 10);
            // - loc
            VerifyLocation(init1, 1, 8, 1, 10);
        }
コード例 #2
0
        public void Test()
        {
            const string code   = "var f = 3";
            var          result = new Esprima().Parse(code).ToString();

            Assert.AreEqual("var f = 3; ", result);
        }
コード例 #3
0
        public void VarX()
        {
            const string code = "var x";

            var tree = new Esprima().Parse(code);

            // =================================== ToString
            Assert.AreEqual("var x; ", tree.ToString());

            // =================================== Program
            // - range
            VerifyRange(tree, 0, 5);
            // - loc
            VerifyLocation(tree, 1, 0, 1, 5);

            Assert.AreEqual(1, tree.Body.Count);

            // =================================== VariableDeclaration
            Assert.IsTrue(tree.Body[0] is VariableDeclaration);
            var declaration = (VariableDeclaration)tree.Body[0];

            // - range
            VerifyRange(declaration, 0, 5);
            // - loc
            VerifyLocation(declaration, 1, 0, 1, 5);

            Assert.AreEqual("var", declaration.Kind);

            // =================================== VariableDeclarator
            Assert.IsTrue(tree.Body[0].Declarations[0] is VariableDeclarator);
            var var = (VariableDeclarator)tree.Body[0].Declarations[0];

            Assert.IsNull(var.Init);
            // - range
            VerifyRange(var, 4, 5);
            // - loc
            VerifyLocation(var, 1, 4, 1, 5);

            // =================================== Identifier
            Assert.IsTrue(tree.Body[0].Declarations[0].Id is Identifier);
            var id = (Identifier)tree.Body[0].Declarations[0].Id;

            Assert.AreEqual("x", id.ToString());

            // - range
            VerifyRange(id, 4, 5);
            // - loc
            VerifyLocation(id, 1, 4, 1, 5);
        }
コード例 #4
0
        public void VarX()
        {
            const string code = "var x";

            var tree = new Esprima().Parse(code);

            // =================================== ToString
            Assert.AreEqual("var x; ", tree.ToString());

            // =================================== Program
            // - range
            VerifyRange(tree, 0, 5);
            // - loc
            VerifyLocation(tree, 1, 0, 1, 5);

            Assert.AreEqual(1, tree.Body.Count);

            // =================================== VariableDeclaration
            Assert.IsTrue(tree.Body[0] is VariableDeclaration);
            var declaration = (VariableDeclaration)tree.Body[0];
            // - range
            VerifyRange(declaration, 0, 5);
            // - loc
            VerifyLocation(declaration, 1, 0, 1, 5);

            Assert.AreEqual("var", declaration.Kind);

            // =================================== VariableDeclarator
            Assert.IsTrue(tree.Body[0].Declarations[0] is VariableDeclarator);
            var var = (VariableDeclarator)tree.Body[0].Declarations[0];

            Assert.IsNull(var.Init);
            // - range
            VerifyRange(var, 4, 5);
            // - loc
            VerifyLocation(var, 1, 4, 1, 5);

            // =================================== Identifier
            Assert.IsTrue(tree.Body[0].Declarations[0].Id is Identifier);
            var id = (Identifier)tree.Body[0].Declarations[0].Id;
            Assert.AreEqual("x", id.ToString());

            // - range
            VerifyRange(id, 4, 5);
            // - loc
            VerifyLocation(id, 1, 4, 1, 5);
        }
コード例 #5
0
ファイル: ParserTest.cs プロジェクト: Diullei/Shion
        public void TestParseAutoSemiColonBeforeNewlineAndComments()
        {
            var tree = new Esprima().Parse(
                    "var s = 3\n"
                  + "/* */var t = 1;"
                );

            Assert.AreEqual("VariableDeclarator", tree.Body[0].Declarations[0].Type);
            Assert.AreEqual("s", tree.Body[0].Declarations[0].Id.Name);
            Assert.AreEqual("Literal", tree.Body[0].Declarations[0].Init.Type);
            Assert.AreEqual("3", tree.Body[0].Declarations[0].Init.Value);

            Assert.AreEqual("VariableDeclarator", tree.Body[1].Declarations[0].Type);
            Assert.AreEqual("t", tree.Body[1].Declarations[0].Id.Name);
            Assert.AreEqual("Literal", tree.Body[1].Declarations[0].Init.Type);
            Assert.AreEqual("1", tree.Body[1].Declarations[0].Init.Value);
        }
コード例 #6
0
        public void This()
        {
            const string code = "this\n";

            var tree = new Esprima().Parse(code);

            // =================================== ToString
            Assert.AreEqual("this", tree.ToString());

            // =================================== Program
            // - range
            VerifyRange(tree, 0, 5);
            // - loc
            VerifyLocation(tree, 1, 0, 2, 0);

            Assert.AreEqual(1, tree.Body.Count);

            // =================================== ExpressionStatement
            Assert.IsTrue(tree.Body[0] is ExpressionStatement);
            var expr = (ExpressionStatement)tree.Body[0];

            // - range
            VerifyRange(tree, 0, 5);
            // - loc
            VerifyLocation(tree, 1, 0, 2, 0);

            // =================================== ThisExpression
            Assert.IsTrue(expr.Expression is ThisExpression);
            var @this = (ThisExpression)expr.Expression;

            // - range
            VerifyRange(@this, 0, 4);
            // - loc
            VerifyLocation(@this, 1, 0, 1, 4);

            // =================================== Tokens
            Assert.AreEqual(1, tree.Extra.Tokens.Count);
            // - range
            Assert.AreEqual(0, tree.Extra.Tokens[0].Range.Start);
            Assert.AreEqual(4, tree.Extra.Tokens[0].Range.End);
            // - loc
            Assert.AreEqual(1, tree.Extra.Tokens[0].Loc.Start.Line);
            Assert.AreEqual(0, tree.Extra.Tokens[0].Loc.Start.Column);
            Assert.AreEqual(1, tree.Extra.Tokens[0].Loc.End.Line);
            Assert.AreEqual(4, tree.Extra.Tokens[0].Loc.End.Column);
        }
コード例 #7
0
ファイル: Node.cs プロジェクト: oujunke/Esprima.Net
 public Node(Token startToken)
 {
     if (Esprima.extra != null)
     {
         //if (extra.range)
         //{
         this.range = new Range()
         {
             Start = startToken.start, End = 0
         };
         // }
         if (Esprima.extra.loc != null)
         {
             this.loc = Esprima.WrappingSourceLocation(startToken);
         }
     }
 }
コード例 #8
0
        public void This()
        {
            const string code = "this\n";

            var tree = new Esprima().Parse(code);

            // =================================== ToString
            Assert.AreEqual("this", tree.ToString());

            // =================================== Program
            // - range
            VerifyRange(tree, 0, 5);
            // - loc
            VerifyLocation(tree, 1, 0, 2, 0);

            Assert.AreEqual(1, tree.Body.Count);

            // =================================== ExpressionStatement
            Assert.IsTrue(tree.Body[0] is ExpressionStatement);
            var expr = (ExpressionStatement)tree.Body[0];
            // - range
            VerifyRange(tree, 0, 5);
            // - loc
            VerifyLocation(tree, 1, 0, 2, 0);

            // =================================== ThisExpression
            Assert.IsTrue(expr.Expression is ThisExpression);
            var @this = (ThisExpression)expr.Expression;
            // - range
            VerifyRange(@this, 0, 4);
            // - loc
            VerifyLocation(@this, 1, 0, 1, 4);

            // =================================== Tokens
            Assert.AreEqual(1, tree.Extra.Tokens.Count);
            // - range
            Assert.AreEqual(0, tree.Extra.Tokens[0].Range.Start);
            Assert.AreEqual(4, tree.Extra.Tokens[0].Range.End);
            // - loc
            Assert.AreEqual(1, tree.Extra.Tokens[0].Loc.Start.Line);
            Assert.AreEqual(0, tree.Extra.Tokens[0].Loc.Start.Column);
            Assert.AreEqual(1, tree.Extra.Tokens[0].Loc.End.Line);
            Assert.AreEqual(4, tree.Extra.Tokens[0].Loc.End.Column);
        }
コード例 #9
0
ファイル: BasicTest.cs プロジェクト: furesoft/Esprima.NET
 public void Test()
 {
     const string code = "var f = 3";
     var result = new Esprima().Parse(code).ToString();
     Assert.AreEqual("var f = 3; ", result);
 }
コード例 #10
0
        public void VarEval42Arguments42()
        {
            const string code = "var eval = 42, arguments = 42";

            var tree = new Esprima().Parse(code);

            // =================================== ToString
            Assert.AreEqual("var eval = 42, arguments = 42; ", tree.ToString());

            // =================================== Program
            // - range
            VerifyRange(tree, 0, 29);
            // - loc
            VerifyLocation(tree, 1, 0, 1, 29);

            Assert.AreEqual(1, tree.Body.Count);

            // =================================== VariableDeclaration
            Assert.IsTrue(tree.Body[0] is VariableDeclaration);
            var declaration = (VariableDeclaration)tree.Body[0];

            // - range
            VerifyRange(declaration, 0, 29);
            // - loc
            VerifyLocation(declaration, 1, 0, 1, 29);

            Assert.AreEqual("var", declaration.Kind);

            // =================================== VariableDeclarator
            Assert.IsTrue(tree.Body[0].Declarations[0] is VariableDeclarator);
            var var1 = (VariableDeclarator)tree.Body[0].Declarations[0];

            Assert.IsNotNull(var1.Init);
            // - range
            VerifyRange(var1, 4, 13);
            // - loc
            VerifyLocation(var1, 1, 4, 1, 13);

            // =================================== Identifier
            Assert.IsTrue(tree.Body[0].Declarations[0].Id is Identifier);
            var id1 = (Identifier)tree.Body[0].Declarations[0].Id;

            Assert.AreEqual("eval", id1.ToString());

            // - range
            VerifyRange(id1, 4, 8);
            // - loc
            VerifyLocation(id1, 1, 4, 1, 8);

            // =================================== Literal
            Assert.IsTrue(tree.Body[0].Declarations[0].Init is Literal);
            var init1 = (Literal)tree.Body[0].Declarations[0].Init;

            Assert.AreEqual("42", init1.ToString());

            // - range
            VerifyRange(init1, 11, 13);
            // - loc
            VerifyLocation(init1, 1, 11, 1, 13);

            // =================================== VariableDeclarator
            Assert.IsTrue(tree.Body[0].Declarations[1] is VariableDeclarator);
            var var2 = (VariableDeclarator)tree.Body[0].Declarations[1];

            Assert.IsNotNull(var1.Init);
            // - range
            VerifyRange(var2, 15, 29);
            // - loc
            VerifyLocation(var2, 1, 15, 1, 29);

            // =================================== Identifier
            Assert.IsTrue(tree.Body[0].Declarations[1].Id is Identifier);
            var id2 = (Identifier)tree.Body[0].Declarations[1].Id;

            Assert.AreEqual("arguments", id2.ToString());

            // - range
            VerifyRange(id2, 15, 24);
            // - loc
            VerifyLocation(id2, 1, 15, 1, 24);

            // =================================== Literal
            Assert.IsTrue(tree.Body[0].Declarations[1].Init is Literal);
            var init2 = (Literal)tree.Body[0].Declarations[1].Init;

            Assert.AreEqual("42", init2.ToString());

            // - range
            VerifyRange(init2, 27, 29);
            // - loc
            VerifyLocation(init2, 1, 27, 1, 29);
        }
コード例 #11
0
        public void VarEval42Arguments42()
        {
            const string code = "var eval = 42, arguments = 42";

            var tree = new Esprima().Parse(code);

            // =================================== ToString
            Assert.AreEqual("var eval = 42, arguments = 42; ", tree.ToString());

            // =================================== Program
            // - range
            VerifyRange(tree, 0, 29);
            // - loc
            VerifyLocation(tree, 1, 0, 1, 29);

            Assert.AreEqual(1, tree.Body.Count);

            // =================================== VariableDeclaration
            Assert.IsTrue(tree.Body[0] is VariableDeclaration);
            var declaration = (VariableDeclaration)tree.Body[0];
            // - range
            VerifyRange(declaration, 0, 29);
            // - loc
            VerifyLocation(declaration, 1, 0, 1, 29);

            Assert.AreEqual("var", declaration.Kind);

            // =================================== VariableDeclarator
            Assert.IsTrue(tree.Body[0].Declarations[0] is VariableDeclarator);
            var var1 = (VariableDeclarator)tree.Body[0].Declarations[0];
            Assert.IsNotNull(var1.Init);
            // - range
            VerifyRange(var1, 4, 13);
            // - loc
            VerifyLocation(var1, 1, 4, 1, 13);

            // =================================== Identifier
            Assert.IsTrue(tree.Body[0].Declarations[0].Id is Identifier);
            var id1 = (Identifier)tree.Body[0].Declarations[0].Id;
            Assert.AreEqual("eval", id1.ToString());

            // - range
            VerifyRange(id1, 4, 8);
            // - loc
            VerifyLocation(id1, 1, 4, 1, 8);

            // =================================== Literal
            Assert.IsTrue(tree.Body[0].Declarations[0].Init is Literal);
            var init1 = (Literal)tree.Body[0].Declarations[0].Init;
            Assert.AreEqual("42", init1.ToString());

            // - range
            VerifyRange(init1, 11, 13);
            // - loc
            VerifyLocation(init1, 1, 11, 1, 13);

            // =================================== VariableDeclarator
            Assert.IsTrue(tree.Body[0].Declarations[1] is VariableDeclarator);
            var var2 = (VariableDeclarator)tree.Body[0].Declarations[1];
            Assert.IsNotNull(var1.Init);
            // - range
            VerifyRange(var2, 15, 29);
            // - loc
            VerifyLocation(var2, 1, 15, 1, 29);

            // =================================== Identifier
            Assert.IsTrue(tree.Body[0].Declarations[1].Id is Identifier);
            var id2 = (Identifier)tree.Body[0].Declarations[1].Id;
            Assert.AreEqual("arguments", id2.ToString());

            // - range
            VerifyRange(id2, 15, 24);
            // - loc
            VerifyLocation(id2, 1, 15, 1, 24);

            // =================================== Literal
            Assert.IsTrue(tree.Body[0].Declarations[1].Init is Literal);
            var init2 = (Literal)tree.Body[0].Declarations[1].Init;
            Assert.AreEqual("42", init2.ToString());

            // - range
            VerifyRange(init2, 27, 29);
            // - loc
            VerifyLocation(init2, 1, 27, 1, 29);

        }
コード例 #12
0
        public void VarX42()
        {
            const string code = "var x = 42";

            var tree = new Esprima().Parse(code);

            // =================================== ToString
            Assert.AreEqual("var x = 42; ", tree.ToString());

            // =================================== Program
            // - range
            VerifyRange(tree, 0, 10);
            // - loc
            VerifyLocation(tree, 1, 0, 1, 10);

            Assert.AreEqual(1, tree.Body.Count);

            // =================================== VariableDeclaration
            Assert.IsTrue(tree.Body[0] is VariableDeclaration);
            var declaration = (VariableDeclaration)tree.Body[0];
            // - range
            VerifyRange(declaration, 0, 10);
            // - loc
            VerifyLocation(declaration, 1, 0, 1, 10);

            Assert.AreEqual("var", declaration.Kind);

            // =================================== VariableDeclarator
            Assert.IsTrue(tree.Body[0].Declarations[0] is VariableDeclarator);
            var var1 = (VariableDeclarator)tree.Body[0].Declarations[0];
            Assert.IsNotNull(var1.Init);
            // - range
            VerifyRange(var1, 4, 10);
            // - loc
            VerifyLocation(var1, 1, 4, 1, 10);

            // =================================== Identifier
            Assert.IsTrue(tree.Body[0].Declarations[0].Id is Identifier);
            var id1 = (Identifier)tree.Body[0].Declarations[0].Id;
            Assert.AreEqual("x", id1.ToString());

            // - range
            VerifyRange(id1, 4, 5);
            // - loc
            VerifyLocation(id1, 1, 4, 1, 5);

            // =================================== Literal
            Assert.IsTrue(tree.Body[0].Declarations[0].Init is Literal);
            var init1 = (Literal)tree.Body[0].Declarations[0].Init;
            Assert.AreEqual("42", init1.ToString());

            // - range
            VerifyRange(init1, 8, 10);
            // - loc
            VerifyLocation(init1, 1, 8, 1, 10);
        }