This is an automated email from the ASF dual-hosted git repository. joshtynjala pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit 5ea8b408614eafa6a9461a5396dc079e95371cbd Author: Josh Tynjala <[email protected]> AuthorDate: Wed Aug 7 15:53:34 2024 -0700 compiler: some more tests for node parsing --- .../internal/tree/as/ASFieldMembersTests.java | 166 ++++++++++++ .../internal/tree/as/ASStatementsTests.java | 294 +++++++++++++++++++++ 2 files changed, 460 insertions(+) diff --git a/compiler/src/test/java/org/apache/royale/compiler/internal/tree/as/ASFieldMembersTests.java b/compiler/src/test/java/org/apache/royale/compiler/internal/tree/as/ASFieldMembersTests.java new file mode 100644 index 000000000..4cb6e9e6e --- /dev/null +++ b/compiler/src/test/java/org/apache/royale/compiler/internal/tree/as/ASFieldMembersTests.java @@ -0,0 +1,166 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.royale.compiler.internal.tree.as; + +import org.apache.royale.compiler.tree.ASTNodeID; +import org.apache.royale.compiler.tree.as.IASNode; +import org.apache.royale.compiler.tree.as.IBinaryOperatorNode; +import org.apache.royale.compiler.tree.as.IExpressionNode; +import org.apache.royale.compiler.tree.as.IKeywordNode; +import org.apache.royale.compiler.tree.as.IVariableNode; +import org.junit.Assert; +import org.junit.Test; + +public class ASFieldMembersTests extends ASTestBase +{ + /* + * Field, Constant, [Namespace] + * + * var foo; + * var foo:int; + * var foo:int = 42; + * private var foo:int; + * private var foo:int = 42; + * protected var foo:int; + * public var foo:int; + */ + + //-------------------------------------------------------------------------- + // Field + //-------------------------------------------------------------------------- + + @Test + public void testField() + { + IVariableNode node = getField("var foo;"); + + IASNode parentNode = node.getParent(); + Assert.assertEquals(0, node.getAbsoluteStart() - parentNode.getAbsoluteStart()); + Assert.assertEquals(7, node.getAbsoluteEnd() - parentNode.getAbsoluteStart()); + Assert.assertEquals(0, node.getLine() - parentNode.getLine()); + Assert.assertEquals(0, node.getColumn() - parentNode.getColumn()); + Assert.assertEquals(0, node.getEndLine() - parentNode.getLine()); + Assert.assertEquals(7, node.getEndColumn() - parentNode.getColumn()); + + IKeywordNode keywordNode = (IKeywordNode) node.getChild(0); + Assert.assertEquals(ASTNodeID.KeywordVarID, keywordNode.getNodeID()); + Assert.assertEquals(0, keywordNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(3, keywordNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, keywordNode.getLine() - node.getLine()); + Assert.assertEquals(0, keywordNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, keywordNode.getEndLine() - node.getLine()); + Assert.assertEquals(3, keywordNode.getEndColumn() - node.getColumn()); + + IExpressionNode nameExpressionNode = node.getNameExpressionNode(); + Assert.assertEquals(4, nameExpressionNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(7, nameExpressionNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode.getLine() - node.getLine()); + Assert.assertEquals(4, nameExpressionNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode.getEndLine() - node.getLine()); + Assert.assertEquals(7, nameExpressionNode.getEndColumn() - node.getColumn()); + } + + @Test + public void testField_withType() + { + IVariableNode node = getField("var foo:int;"); + + IASNode parentNode = node.getParent(); + Assert.assertEquals(0, node.getAbsoluteStart() - parentNode.getAbsoluteStart()); + Assert.assertEquals(11, node.getAbsoluteEnd() - parentNode.getAbsoluteStart()); + Assert.assertEquals(0, node.getLine() - parentNode.getLine()); + Assert.assertEquals(0, node.getColumn() - parentNode.getColumn()); + Assert.assertEquals(0, node.getEndLine() - parentNode.getLine()); + Assert.assertEquals(11, node.getEndColumn() - parentNode.getColumn()); + + IKeywordNode keywordNode = (IKeywordNode) node.getChild(0); + Assert.assertEquals(ASTNodeID.KeywordVarID, keywordNode.getNodeID()); + Assert.assertEquals(0, keywordNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(3, keywordNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, keywordNode.getLine() - node.getLine()); + Assert.assertEquals(0, keywordNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, keywordNode.getEndLine() - node.getLine()); + Assert.assertEquals(3, keywordNode.getEndColumn() - node.getColumn()); + + IExpressionNode nameExpressionNode = node.getNameExpressionNode(); + Assert.assertEquals(4, nameExpressionNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(7, nameExpressionNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode.getLine() - node.getLine()); + Assert.assertEquals(4, nameExpressionNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode.getEndLine() - node.getLine()); + Assert.assertEquals(7, nameExpressionNode.getEndColumn() - node.getColumn()); + + IExpressionNode varTypeNode = node.getVariableTypeNode(); + Assert.assertEquals(8, varTypeNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(11, varTypeNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, varTypeNode.getLine() - node.getLine()); + Assert.assertEquals(8, varTypeNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, varTypeNode.getEndLine() - node.getLine()); + Assert.assertEquals(11, varTypeNode.getEndColumn() - node.getColumn()); + } + + @Test + public void testField_withTypeValue() + { + IVariableNode node = getField("var foo:int = 123;"); + + IASNode parentNode = node.getParent(); + Assert.assertEquals(0, node.getAbsoluteStart() - parentNode.getAbsoluteStart()); + Assert.assertEquals(17, node.getAbsoluteEnd() - parentNode.getAbsoluteStart()); + Assert.assertEquals(0, node.getLine() - parentNode.getLine()); + Assert.assertEquals(0, node.getColumn() - parentNode.getColumn()); + Assert.assertEquals(0, node.getEndLine() - parentNode.getLine()); + Assert.assertEquals(17, node.getEndColumn() - parentNode.getColumn()); + + IKeywordNode keywordNode = (IKeywordNode) node.getChild(0); + Assert.assertEquals(ASTNodeID.KeywordVarID, keywordNode.getNodeID()); + Assert.assertEquals(0, keywordNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(3, keywordNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, keywordNode.getLine() - node.getLine()); + Assert.assertEquals(0, keywordNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, keywordNode.getEndLine() - node.getLine()); + Assert.assertEquals(3, keywordNode.getEndColumn() - node.getColumn()); + + IExpressionNode nameExpressionNode = node.getNameExpressionNode(); + Assert.assertEquals(4, nameExpressionNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(7, nameExpressionNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode.getLine() - node.getLine()); + Assert.assertEquals(4, nameExpressionNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode.getEndLine() - node.getLine()); + Assert.assertEquals(7, nameExpressionNode.getEndColumn() - node.getColumn()); + + IExpressionNode varTypeNode = node.getVariableTypeNode(); + Assert.assertEquals(8, varTypeNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(11, varTypeNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, varTypeNode.getLine() - node.getLine()); + Assert.assertEquals(8, varTypeNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, varTypeNode.getEndLine() - node.getLine()); + Assert.assertEquals(11, varTypeNode.getEndColumn() - node.getColumn()); + + IExpressionNode assignedValueNode = node.getAssignedValueNode(); + Assert.assertEquals(14, assignedValueNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(17, assignedValueNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, assignedValueNode.getLine() - node.getLine()); + Assert.assertEquals(14, assignedValueNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, assignedValueNode.getEndLine() - node.getLine()); + Assert.assertEquals(17, assignedValueNode.getEndColumn() - node.getColumn()); + } + +} diff --git a/compiler/src/test/java/org/apache/royale/compiler/internal/tree/as/ASStatementsTests.java b/compiler/src/test/java/org/apache/royale/compiler/internal/tree/as/ASStatementsTests.java new file mode 100644 index 000000000..3e3c99561 --- /dev/null +++ b/compiler/src/test/java/org/apache/royale/compiler/internal/tree/as/ASStatementsTests.java @@ -0,0 +1,294 @@ + +/* +* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +package org.apache.royale.compiler.internal.tree.as; + +import org.apache.royale.compiler.tree.as.IASNode; +import org.apache.royale.compiler.tree.as.IExpressionNode; +import org.apache.royale.compiler.tree.as.IVariableNode; +import org.junit.Assert; +import org.junit.Test; + +public class ASStatementsTests extends ASTestBase +{ + //---------------------------------- + // var declaration + //---------------------------------- + + @Test + public void testVarDeclaration() + { + IVariableNode node = (IVariableNode) getNode("var a;", + IVariableNode.class); + + IASNode parentNode = node.getParent(); + Assert.assertEquals(0, node.getAbsoluteStart() - parentNode.getAbsoluteStart()); + Assert.assertEquals(5, node.getAbsoluteEnd() - parentNode.getAbsoluteStart()); + Assert.assertEquals(0, node.getLine() - parentNode.getLine()); + Assert.assertEquals(0, node.getColumn() - parentNode.getColumn()); + Assert.assertEquals(0, node.getEndLine() - parentNode.getLine()); + Assert.assertEquals(5, node.getEndColumn() - parentNode.getColumn()); + + IExpressionNode nameExpressionNode = node.getNameExpressionNode(); + Assert.assertEquals(4, nameExpressionNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(5, nameExpressionNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode.getLine() - node.getLine()); + Assert.assertEquals(4, nameExpressionNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode.getEndLine() - node.getLine()); + Assert.assertEquals(5, nameExpressionNode.getEndColumn() - node.getColumn()); + } + + @Test + public void testVarDeclaration_withType() + { + IVariableNode node = (IVariableNode) getNode("var a:int;", + IVariableNode.class); + + IASNode parentNode = node.getParent(); + Assert.assertEquals(0, node.getAbsoluteStart() - parentNode.getAbsoluteStart()); + Assert.assertEquals(9, node.getAbsoluteEnd() - parentNode.getAbsoluteStart()); + Assert.assertEquals(0, node.getLine() - parentNode.getLine()); + Assert.assertEquals(0, node.getColumn() - parentNode.getColumn()); + Assert.assertEquals(0, node.getEndLine() - parentNode.getLine()); + Assert.assertEquals(9, node.getEndColumn() - parentNode.getColumn()); + + IExpressionNode nameExpressionNode = node.getNameExpressionNode(); + Assert.assertEquals(4, nameExpressionNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(5, nameExpressionNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode.getLine() - node.getLine()); + Assert.assertEquals(4, nameExpressionNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode.getEndLine() - node.getLine()); + Assert.assertEquals(5, nameExpressionNode.getEndColumn() - node.getColumn()); + + IExpressionNode varTypeNode = node.getVariableTypeNode(); + Assert.assertEquals(6, varTypeNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(9, varTypeNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, varTypeNode.getLine() - node.getLine()); + Assert.assertEquals(6, varTypeNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, varTypeNode.getEndLine() - node.getLine()); + Assert.assertEquals(9, varTypeNode.getEndColumn() - node.getColumn()); + } + + @Test + public void testVarDeclaration_withTypeAssignedValue() + { + IVariableNode node = (IVariableNode) getNode("var a:int = 42;", + IVariableNode.class); + + IASNode parentNode = node.getParent(); + Assert.assertEquals(0, node.getAbsoluteStart() - parentNode.getAbsoluteStart()); + Assert.assertEquals(14, node.getAbsoluteEnd() - parentNode.getAbsoluteStart()); + Assert.assertEquals(0, node.getLine() - parentNode.getLine()); + Assert.assertEquals(0, node.getColumn() - parentNode.getColumn()); + Assert.assertEquals(0, node.getEndLine() - parentNode.getLine()); + Assert.assertEquals(14, node.getEndColumn() - parentNode.getColumn()); + + IExpressionNode nameExpressionNode = node.getNameExpressionNode(); + Assert.assertEquals(4, nameExpressionNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(5, nameExpressionNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode.getLine() - node.getLine()); + Assert.assertEquals(4, nameExpressionNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode.getEndLine() - node.getLine()); + Assert.assertEquals(5, nameExpressionNode.getEndColumn() - node.getColumn()); + + IExpressionNode varTypeNode = node.getVariableTypeNode(); + Assert.assertEquals(6, varTypeNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(9, varTypeNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, varTypeNode.getLine() - node.getLine()); + Assert.assertEquals(6, varTypeNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, varTypeNode.getEndLine() - node.getLine()); + Assert.assertEquals(9, varTypeNode.getEndColumn() - node.getColumn()); + + IExpressionNode assignedValueNode = node.getAssignedValueNode(); + Assert.assertEquals(12, assignedValueNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(14, assignedValueNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, assignedValueNode.getLine() - node.getLine()); + Assert.assertEquals(12, assignedValueNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, assignedValueNode.getEndLine() - node.getLine()); + Assert.assertEquals(14, assignedValueNode.getEndColumn() - node.getColumn()); + } + + @Test + public void testVarDeclaration_withList() + { + IVariableNode node = (IVariableNode) getNode( + "var a:int = 4, b:int = 11, c:int = 42;", IVariableNode.class); + + IASNode parentNode = node.getParent(); + Assert.assertEquals(0, node.getAbsoluteStart() - parentNode.getAbsoluteStart()); + Assert.assertEquals(37, node.getAbsoluteEnd() - parentNode.getAbsoluteStart()); + Assert.assertEquals(0, node.getLine() - parentNode.getLine()); + Assert.assertEquals(0, node.getColumn() - parentNode.getColumn()); + Assert.assertEquals(0, node.getEndLine() - parentNode.getLine()); + Assert.assertEquals(37, node.getEndColumn() - parentNode.getColumn()); + + IExpressionNode nameExpressionNode1 = node.getNameExpressionNode(); + Assert.assertEquals(4, nameExpressionNode1.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(5, nameExpressionNode1.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode1.getLine() - node.getLine()); + Assert.assertEquals(4, nameExpressionNode1.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode1.getEndLine() - node.getLine()); + Assert.assertEquals(5, nameExpressionNode1.getEndColumn() - node.getColumn()); + + IExpressionNode varTypeNode1 = node.getVariableTypeNode(); + Assert.assertEquals(6, varTypeNode1.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(9, varTypeNode1.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, varTypeNode1.getLine() - node.getLine()); + Assert.assertEquals(6, varTypeNode1.getColumn() - node.getColumn()); + Assert.assertEquals(0, varTypeNode1.getEndLine() - node.getLine()); + Assert.assertEquals(9, varTypeNode1.getEndColumn() - node.getColumn()); + + IExpressionNode assignedValueNode1 = node.getAssignedValueNode(); + Assert.assertEquals(12, assignedValueNode1.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(13, assignedValueNode1.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, assignedValueNode1.getLine() - node.getLine()); + Assert.assertEquals(12, assignedValueNode1.getColumn() - node.getColumn()); + Assert.assertEquals(0, assignedValueNode1.getEndLine() - node.getLine()); + Assert.assertEquals(13, assignedValueNode1.getEndColumn() - node.getColumn()); + + IVariableNode node2 = (IVariableNode) node.getChild(4); + Assert.assertNotNull(node2); + + IExpressionNode nameExpressionNode2 = node2.getNameExpressionNode(); + Assert.assertEquals(15, nameExpressionNode2.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(16, nameExpressionNode2.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode2.getLine() - node.getLine()); + Assert.assertEquals(15, nameExpressionNode2.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode2.getEndLine() - node.getLine()); + Assert.assertEquals(16, nameExpressionNode2.getEndColumn() - node.getColumn()); + + IExpressionNode varTypeNode2 = node2.getVariableTypeNode(); + Assert.assertEquals(17, varTypeNode2.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(20, varTypeNode2.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, varTypeNode2.getLine() - node.getLine()); + Assert.assertEquals(17, varTypeNode2.getColumn() - node.getColumn()); + Assert.assertEquals(0, varTypeNode2.getEndLine() - node.getLine()); + Assert.assertEquals(20, varTypeNode2.getEndColumn() - node.getColumn()); + + IExpressionNode assignedValueNode2 = node2.getAssignedValueNode(); + Assert.assertEquals(23, assignedValueNode2.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(25, assignedValueNode2.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, assignedValueNode2.getLine() - node.getLine()); + Assert.assertEquals(23, assignedValueNode2.getColumn() - node.getColumn()); + Assert.assertEquals(0, assignedValueNode2.getEndLine() - node.getLine()); + Assert.assertEquals(25, assignedValueNode2.getEndColumn() - node.getColumn()); + + IVariableNode node3 = (IVariableNode) node.getChild(5); + Assert.assertNotNull(node3); + + IExpressionNode nameExpressionNode3 = node3.getNameExpressionNode(); + Assert.assertEquals(27, nameExpressionNode3.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(28, nameExpressionNode3.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode3.getLine() - node.getLine()); + Assert.assertEquals(27, nameExpressionNode3.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode3.getEndLine() - node.getLine()); + Assert.assertEquals(28, nameExpressionNode3.getEndColumn() - node.getColumn()); + + IExpressionNode varTypeNode3 = node3.getVariableTypeNode(); + Assert.assertEquals(29, varTypeNode3.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(32, varTypeNode3.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, varTypeNode3.getLine() - node.getLine()); + Assert.assertEquals(29, varTypeNode3.getColumn() - node.getColumn()); + Assert.assertEquals(0, varTypeNode3.getEndLine() - node.getLine()); + Assert.assertEquals(32, varTypeNode3.getEndColumn() - node.getColumn()); + + IExpressionNode assignedValueNode3 = node3.getAssignedValueNode(); + Assert.assertEquals(35, assignedValueNode3.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(37, assignedValueNode3.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, assignedValueNode3.getLine() - node.getLine()); + Assert.assertEquals(35, assignedValueNode3.getColumn() - node.getColumn()); + Assert.assertEquals(0, assignedValueNode3.getEndLine() - node.getLine()); + Assert.assertEquals(37, assignedValueNode3.getEndColumn() - node.getColumn()); + } + + //---------------------------------- + // const declaration + //---------------------------------- + + @Test + public void testConstDeclaration() + { + IVariableNode node = (IVariableNode) getNode("const a = 42;", + IVariableNode.class); + + IASNode parentNode = node.getParent(); + Assert.assertEquals(0, node.getAbsoluteStart() - parentNode.getAbsoluteStart()); + Assert.assertEquals(12, node.getAbsoluteEnd() - parentNode.getAbsoluteStart()); + Assert.assertEquals(0, node.getLine() - parentNode.getLine()); + Assert.assertEquals(0, node.getColumn() - parentNode.getColumn()); + Assert.assertEquals(0, node.getEndLine() - parentNode.getLine()); + Assert.assertEquals(12, node.getEndColumn() - parentNode.getColumn()); + + IExpressionNode nameExpressionNode = node.getNameExpressionNode(); + Assert.assertEquals(6, nameExpressionNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(7, nameExpressionNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode.getLine() - node.getLine()); + Assert.assertEquals(6, nameExpressionNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode.getEndLine() - node.getLine()); + Assert.assertEquals(7, nameExpressionNode.getEndColumn() - node.getColumn()); + + IExpressionNode assignedValueNode = node.getAssignedValueNode(); + Assert.assertEquals(10, assignedValueNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(12, assignedValueNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, assignedValueNode.getLine() - node.getLine()); + Assert.assertEquals(10, assignedValueNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, assignedValueNode.getEndLine() - node.getLine()); + Assert.assertEquals(12, assignedValueNode.getEndColumn() - node.getColumn()); + } + + @Test + public void testConstDeclaration_withType() + { + IVariableNode node = (IVariableNode) getNode("const a:int = 42;", + IVariableNode.class); + + IASNode parentNode = node.getParent(); + Assert.assertEquals(0, node.getAbsoluteStart() - parentNode.getAbsoluteStart()); + Assert.assertEquals(16, node.getAbsoluteEnd() - parentNode.getAbsoluteStart()); + Assert.assertEquals(0, node.getLine() - parentNode.getLine()); + Assert.assertEquals(0, node.getColumn() - parentNode.getColumn()); + Assert.assertEquals(0, node.getEndLine() - parentNode.getLine()); + Assert.assertEquals(16, node.getEndColumn() - parentNode.getColumn()); + + IExpressionNode nameExpressionNode = node.getNameExpressionNode(); + Assert.assertEquals(6, nameExpressionNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(7, nameExpressionNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, nameExpressionNode.getLine() - node.getLine()); + Assert.assertEquals(6, nameExpressionNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, nameExpressionNode.getEndLine() - node.getLine()); + Assert.assertEquals(7, nameExpressionNode.getEndColumn() - node.getColumn()); + + IExpressionNode varTypeNode = node.getVariableTypeNode(); + Assert.assertEquals(8, varTypeNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(11, varTypeNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, varTypeNode.getLine() - node.getLine()); + Assert.assertEquals(8, varTypeNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, varTypeNode.getEndLine() - node.getLine()); + Assert.assertEquals(11, varTypeNode.getEndColumn() - node.getColumn()); + + IExpressionNode assignedValueNode = node.getAssignedValueNode(); + Assert.assertEquals(14, assignedValueNode.getAbsoluteStart() - node.getAbsoluteStart()); + Assert.assertEquals(16, assignedValueNode.getAbsoluteEnd() - node.getAbsoluteStart()); + Assert.assertEquals(0, assignedValueNode.getLine() - node.getLine()); + Assert.assertEquals(14, assignedValueNode.getColumn() - node.getColumn()); + Assert.assertEquals(0, assignedValueNode.getEndLine() - node.getLine()); + Assert.assertEquals(16, assignedValueNode.getEndColumn() - node.getColumn()); + } +} \ No newline at end of file
