You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by pi...@apache.org on 2019/09/16 08:07:12 UTC
[royale-compiler] 05/06: compiler: more end line/column improvements
This is an automated email from the ASF dual-hosted git repository.
piotrz pushed a commit to branch release/0.9.6
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit d941f263ca03890f84c3599cadc4407b966f6b0f
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Fri Sep 13 13:32:58 2019 -0700
compiler: more end line/column improvements
(cherry picked from commit f72da6033d17ae0acf9ec047882adafae186d656)
---
.../compiler/internal/definitions/VectorInformation.java | 4 ++--
.../royale/compiler/internal/parsing/as/BaseASParser.java | 2 +-
.../compiler/internal/tree/as/BinaryOperatorNodeBase.java | 2 +-
.../royale/compiler/internal/tree/as/ClassNode.java | 4 ++--
.../royale/compiler/internal/tree/as/FunctionNode.java | 4 ++--
.../internal/tree/as/NamespaceAccessExpressionNode.java | 2 +-
.../internal/tree/as/NamespaceIdentifierNode.java | 2 +-
.../apache/royale/compiler/internal/tree/as/NodeBase.java | 15 +++++++++++++++
.../royale/compiler/internal/tree/as/ParameterNode.java | 2 +-
.../compiler/internal/tree/as/UnaryOperatorNodeBase.java | 2 +-
.../compiler/internal/tree/as/UseNamespaceNode.java | 2 +-
.../royale/compiler/internal/tree/mxml/MXMLNodeBase.java | 1 +
12 files changed, 29 insertions(+), 13 deletions(-)
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/VectorInformation.java b/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/VectorInformation.java
index d83b27a..1310790 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/VectorInformation.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/VectorInformation.java
@@ -198,14 +198,14 @@ class VectorInformation
//add the fixed getter/setter pair
GetterNode fixGetter = new GetterNode(null, null, new IdentifierNode("fixed"));
NamespaceIdentifierNode pub = new NamespaceIdentifierNode(INamespaceConstants.public_);
- pub.span(-1, -1, -1, -1);
+ pub.span(-1, -1, -1, -1, -1, -1);
fixGetter.setNamespace(pub);
fixGetter.setType(null, new IdentifierNode(IASLanguageConstants.Boolean));
retVal[2] = fixGetter;
SetterNode fixSetter = new SetterNode(null, null, new IdentifierNode("fixed"));
pub = new NamespaceIdentifierNode(INamespaceConstants.public_);
- pub.span(-1, -1, -1, -1);
+ pub.span(-1, -1, -1, -1, -1, -1);
fixSetter.setNamespace(pub);
fixSetter.setType(null, new IdentifierNode(IASLanguageConstants.void_));
ParameterNode value = new ParameterNode(new IdentifierNode("value"));
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java
index a9a5e91..62bdaee 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java
@@ -1573,7 +1573,7 @@ abstract class BaseASParser extends LLkParser implements IProblemReporter
}
else
{
- block.span(blockToken.getStart() + 1, blockToken.getStart() + 1, blockToken.getLine(), blockToken.getColumn());
+ block.span(blockToken.getStart() + 1, blockToken.getStart() + 1, blockToken.getLine(), blockToken.getColumn(), blockToken.getLine(), blockToken.getColumn());
}
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/BinaryOperatorNodeBase.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/BinaryOperatorNodeBase.java
index d51c82d..03dae65 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/BinaryOperatorNodeBase.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/BinaryOperatorNodeBase.java
@@ -282,7 +282,7 @@ public abstract class BinaryOperatorNodeBase extends OperatorNodeBase implements
protected void fillInOffsets()
{
if (rightOperandNode == null && leftOperandNode == null && operatorStart != -1)
- span(operatorStart, operatorStart + 1, -1, -1);
+ span(operatorStart, operatorStart + 1, -1, -1, -1, -1);
else
super.fillInOffsets();
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ClassNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ClassNode.java
index bfc65ba..484f0a8 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ClassNode.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ClassNode.java
@@ -513,10 +513,10 @@ public class ClassNode extends MemberedNode implements IClassNode
// so we'll create one and add it to the ClassNode
IdentifierNode constructorNameNode = new IdentifierNode(getName());
constructorNameNode.setReferenceValue(getDefinition());
- constructorNameNode.span(getNameAbsoluteStart(), getNameAbsoluteEnd(), -1, -1);
+ constructorNameNode.span(getNameAbsoluteStart(), getNameAbsoluteEnd(), -1, -1, -1, -1);
defaultConstructorNode = new FunctionNode(null, constructorNameNode);
NamespaceIdentifierNode pub = new NamespaceIdentifierNode(INamespaceConstants.public_);
- pub.span(-1, -1, -1, -1);
+ pub.span(-1, -1, -1, -1, -1, -1);
defaultConstructorNode.setNamespace(pub);
defaultConstructorNode.normalize(true);
defaultConstructorNode.setParent(contentsNode);
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/FunctionNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/FunctionNode.java
index 64c0b2b..54c836c 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/FunctionNode.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/FunctionNode.java
@@ -384,7 +384,7 @@ public class FunctionNode extends BaseTypedDefinitionNode implements IFunctionNo
// metadata, the constructor should be considered private
// and we should generate a fake namespace node
NamespaceIdentifierNode priv = new NamespaceIdentifierNode(INamespaceConstants.private_);
- priv.span(-1, -1, -1, -1);
+ priv.span(-1, -1, -1, -1, -1, -1);
priv.setDecorationTarget(this);
return priv;
}
@@ -392,7 +392,7 @@ public class FunctionNode extends BaseTypedDefinitionNode implements IFunctionNo
// if there is no namespace node, the namespace defaults to public
// and we'll generate a fake node
NamespaceIdentifierNode pub = new NamespaceIdentifierNode(INamespaceConstants.public_);
- pub.span(-1, -1, -1, -1);
+ pub.span(-1, -1, -1, -1, -1, -1);
pub.setDecorationTarget(this);
return pub;
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceAccessExpressionNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceAccessExpressionNode.java
index 175f500..ae8e987 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceAccessExpressionNode.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceAccessExpressionNode.java
@@ -41,7 +41,7 @@ public class NamespaceAccessExpressionNode extends BinaryOperatorNodeBase implem
{
super(operator, left instanceof IdentifierNode ? new NamespaceIdentifierNode((IdentifierNode)left) : left, right);
- leftOperandNode.span(left.getAbsoluteStart(), left.getAbsoluteEnd(), left.getLine(), left.getColumn());
+ leftOperandNode.span(left.getAbsoluteStart(), left.getAbsoluteEnd(), left.getLine(), left.getColumn(), left.getEndLine(), left.getEndColumn());
}
/**
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceIdentifierNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceIdentifierNode.java
index bd74fd2..05238a9 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceIdentifierNode.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceIdentifierNode.java
@@ -79,7 +79,7 @@ public class NamespaceIdentifierNode extends IdentifierNode implements INamespac
{
super(node.getName());
- span(node.getAbsoluteStart(), node.getAbsoluteEnd(), node.getLine(), node.getColumn());
+ span(node.getAbsoluteStart(), node.getAbsoluteEnd(), node.getLine(), node.getColumn(), node.getEndLine(), node.getEndColumn());
setSourcePath(node.getSourcePath());
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NodeBase.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NodeBase.java
index d4d9941..eef182f 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NodeBase.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NodeBase.java
@@ -483,13 +483,28 @@ public abstract class NodeBase extends SourceLocation implements IASNode
* @param start start offset for the node
* @param end end offset for the node
* @param line line number for the node
+ * @deprecated Use span(int,int,int,int,int,int) instead so that endLine and endColumn are included
*/
public final void span(int start, int end, int line, int column)
{
+ span(start, end, line, column, -1, -1);
+ }
+
+ /**
+ * Set the start and end offsets of the node. Used during parsing.
+ *
+ * @param start start offset for the node
+ * @param end end offset for the node
+ * @param line line number for the node
+ */
+ public final void span(int start, int end, int line, int column, int endLine, int endColumn)
+ {
setStart(start);
setEnd(end);
setLine(line);
setColumn(column);
+ setEndLine(endLine);
+ setEndColumn(endColumn);
}
public Collection<ICompilerProblem> runPostProcess(EnumSet<PostProcessStep> set, ASScope containingScope)
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ParameterNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ParameterNode.java
index 51b209c..93efc2f 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ParameterNode.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ParameterNode.java
@@ -172,7 +172,7 @@ public final class ParameterNode extends BaseVariableNode implements IParameterN
if (typeNode == null && isRest())
{
typeNode = new IdentifierNode(IASLanguageConstants.Array);
- typeNode.span(-1, -1, -1, -1);
+ typeNode.span(-1, -1, -1, -1, -1, -1);
return;
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UnaryOperatorNodeBase.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UnaryOperatorNodeBase.java
index 5145924..be92a12 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UnaryOperatorNodeBase.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UnaryOperatorNodeBase.java
@@ -148,7 +148,7 @@ public abstract class UnaryOperatorNodeBase extends OperatorNodeBase implements
{
if (operandNode == null && operatorStart != -1)
{
- span(operatorStart, operatorStart + 1, -1, -1);
+ span(operatorStart, operatorStart + 1, -1, -1, -1, -1);
}
else
{
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UseNamespaceNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UseNamespaceNode.java
index 8ce1130..51a3d29 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UseNamespaceNode.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UseNamespaceNode.java
@@ -123,7 +123,7 @@ public class UseNamespaceNode extends FixedChildrenNode implements IUseNamespace
{
namespaceNode = new NamespaceIdentifierNode(((IIdentifierNode)namespace).getName());
((NodeBase)namespaceNode).setSourcePath(namespace.getSourcePath());
- ((NodeBase)namespaceNode).span(namespace.getAbsoluteStart(), namespace.getAbsoluteEnd(), namespace.getLine(), namespace.getColumn());
+ ((NodeBase)namespaceNode).span(namespace.getAbsoluteStart(), namespace.getAbsoluteEnd(), namespace.getLine(), namespace.getColumn(), namespace.getEndLine(), namespace.getEndColumn());
}
}
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/mxml/MXMLNodeBase.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/mxml/MXMLNodeBase.java
index 4909e2e..b511f63 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/mxml/MXMLNodeBase.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/mxml/MXMLNodeBase.java
@@ -689,6 +689,7 @@ public abstract class MXMLNodeBase extends NodeBase implements IMXMLNode
* @param end The ending offset of this node.
* @param line The number of the line on which this node starts.
* @param column This number of the column at which this node starts.
+ * @deprecated Use setLocation(String,int,int,int,int,int,int) instead
*/
public void setLocation(String sourcePath, int start, int end, int line, int column)
{