Skip to content

Commit

Permalink
Merge pull request #43449 from poorna2152/xml_step_extend_method_invo…
Browse files Browse the repository at this point in the history
…cation

Add support for step extension in xml step expression
  • Loading branch information
gimantha authored Oct 4, 2024
2 parents 42ec3a5 + 7296555 commit 2b342d8
Show file tree
Hide file tree
Showing 97 changed files with 19,408 additions and 1,369 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,9 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementFilter;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLFilterStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLIndexedStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLMethodCallStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLProcInsLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLQName;
Expand Down Expand Up @@ -1046,6 +1049,18 @@ public void visit(BLangXMLElementAccess xmlElementAccess) {
public void visit(BLangXMLNavigationAccess xmlNavigation) {
}

@Override
public void visit(BLangXMLIndexedStepExtend xmlIndexedStepExtend) {
}

@Override
public void visit(BLangXMLFilterStepExtend xmlFilterStepExtend) {
}

@Override
public void visit(BLangXMLMethodCallStepExtend xmlMethodCallStepExtend) {
}

@Override
public void visit(BLangClassDefinition classDefinition) {
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangElvisExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorConstructorExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorVarRef;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangExtendedXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangFieldBasedAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangGroupExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangIndexBasedAccess;
Expand Down Expand Up @@ -144,6 +145,9 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementFilter;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLFilterStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLIndexedStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLMethodCallStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLProcInsLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLQName;
Expand Down Expand Up @@ -1283,10 +1287,31 @@ public void visit(BLangXMLElementAccess xmlElementAccess) {
@Override
public void visit(BLangXMLNavigationAccess xmlNavigation) {
lookupNode(xmlNavigation.expr);
lookupNode(xmlNavigation.childIndex);
lookupNodes(xmlNavigation.filters);
}

@Override
public void visit(BLangExtendedXMLNavigationAccess extendedXmlNavigationAccess) {
lookupNode(extendedXmlNavigationAccess.stepExpr);
lookupNodes(extendedXmlNavigationAccess.extensions);
}

@Override
public void visit(BLangXMLIndexedStepExtend xmlIndexedStepExtend) {
lookupNode(xmlIndexedStepExtend.indexExpr);
}

@Override
public void visit(BLangXMLFilterStepExtend xmlFilterStepExtend) {
lookupNodes(xmlFilterStepExtend.filters);
setEnclosingNode(xmlFilterStepExtend, xmlFilterStepExtend.pos);
}

@Override
public void visit(BLangXMLMethodCallStepExtend xmlMethodCallStepExtend) {
lookupNode(xmlMethodCallStepExtend.invocation);
}

@Override
public void visit(BLangMatchStatement matchStatementNode) {
lookupNode(matchStatementNode.expr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorConstructorExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorVarRef;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangExpression;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangExtendedXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangFieldBasedAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangFieldBasedAccess.BLangPrefixedFieldBasedAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangGroupExpr;
Expand Down Expand Up @@ -151,6 +152,9 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementFilter;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLFilterStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLIndexedStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLMethodCallStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLProcInsLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLQName;
Expand Down Expand Up @@ -1322,11 +1326,36 @@ public void visit(BLangXMLElementAccess xmlElementAccess) {

@Override
public void visit(BLangXMLNavigationAccess xmlNavigation) {
find(xmlNavigation.childIndex);
find(xmlNavigation.filters);
find(xmlNavigation.expr);
}

@Override
public void visit(BLangExtendedXMLNavigationAccess extendedXmlNavigationAccess) {
find(extendedXmlNavigationAccess.extensions);
find(extendedXmlNavigationAccess.stepExpr);
}

@Override
public void visit(BLangXMLIndexedStepExtend xmlIndexedStepExtend) {
find(xmlIndexedStepExtend.indexExpr);
}

@Override
public void visit(BLangXMLFilterStepExtend xmlFilterStepExtend) {
find(xmlFilterStepExtend.filters);
}

@Override
public void visit(BLangXMLMethodCallStepExtend xmlMethodCallStepExtend) {
BLangInvocation invocation = xmlMethodCallStepExtend.invocation;
List<BLangExpression> argExprs = invocation.argExprs;
for (int i = 1; i < argExprs.size(); i++) {
find(argExprs.get(i));
}
addIfSameSymbol(invocation.symbol, invocation.name.pos);
}

@Override
public void visit(BLangClassDefinition classDefinition) {
find(classDefinition.annAttachments);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorConstructorExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorVarRef;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangExpression;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangExtendedXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangFieldBasedAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangGroupExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangIgnoreExpr;
Expand Down Expand Up @@ -162,6 +163,9 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementFilter;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLFilterStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLIndexedStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLMethodCallStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLProcInsLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLQName;
Expand Down Expand Up @@ -1670,10 +1674,30 @@ public void visit(BLangXMLElementAccess xmlElementAccess) {
@Override
public void visit(BLangXMLNavigationAccess xmlNavigation) {
lookupNode(xmlNavigation.expr);
lookupNode(xmlNavigation.childIndex);
lookupNodes(xmlNavigation.filters);
}

@Override
public void visit(BLangExtendedXMLNavigationAccess extendedXmlNavigationAccess) {
lookupNode(extendedXmlNavigationAccess.stepExpr);
lookupNodes(extendedXmlNavigationAccess.extensions);
}

@Override
public void visit(BLangXMLIndexedStepExtend xmlIndexedStepExtend) {
lookupNode(xmlIndexedStepExtend.indexExpr);
}

@Override
public void visit(BLangXMLFilterStepExtend xmlFilterStepExtend) {
lookupNodes(xmlFilterStepExtend.filters);
}

@Override
public void visit(BLangXMLMethodCallStepExtend xmlMethodCallStepExtend) {
lookupNode(xmlMethodCallStepExtend.invocation);
}

@Override
public void visit(BLangInvocation.BLangResourceAccessInvocation resourceAccessInvocation) {
lookupNodes(resourceAccessInvocation.annAttachments);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,10 @@ public enum NodeKind {
XML_ELEMENT_FILTER_EXPR,
XML_ELEMENT_ACCESS,
XML_NAVIGATION,
XML_EXTENDED_NAVIGATION,
XML_STEP_INDEXED_EXTEND,
XML_STEP_FILTER_EXTEND,
XML_STEP_METHOD_CALL_EXTEND,
STATEMENT_EXPRESSION,
MATCH_EXPRESSION,
MATCH_EXPRESSION_PATTERN_CLAUSE,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,4 @@ public static NavAccessType fromInt(int number) {
List<BLangXMLElementFilter> getFilters();

BLangExpression getExpression();

BLangExpression getChildIndex();
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorConstructorExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorVarRef;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangExpression;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangExtendedXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangFieldBasedAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangGroupExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangIgnoreExpr;
Expand Down Expand Up @@ -104,6 +105,9 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLCommentLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLFilterStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLIndexedStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLMethodCallStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLProcInsLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLQName;
Expand Down Expand Up @@ -1087,11 +1091,33 @@ public void visit(BLangXMLElementAccess xmlElementAccess) {
@Override
public void visit(BLangXMLNavigationAccess xmlNavigation) {
xmlNavigation.expr = rewriteExpr(xmlNavigation.expr);
xmlNavigation.childIndex = rewriteExpr(xmlNavigation.childIndex);
result = xmlNavigation;
}

@Override
public void visit(BLangExtendedXMLNavigationAccess extendedXMLNavigationAccess) {
extendedXMLNavigationAccess.stepExpr = rewriteExpr(extendedXMLNavigationAccess.stepExpr);
rewriteExprs(extendedXMLNavigationAccess.extensions);
result = extendedXMLNavigationAccess;
}

@Override
public void visit(BLangXMLIndexedStepExtend xmlIndexedStepExtend) {
xmlIndexedStepExtend.indexExpr = rewriteExpr(xmlIndexedStepExtend.indexExpr);
result = xmlIndexedStepExtend;
}

@Override
public void visit(BLangXMLMethodCallStepExtend xmlMethodCallStepExtend) {
xmlMethodCallStepExtend.invocation = rewriteExpr(xmlMethodCallStepExtend.invocation);
result = xmlMethodCallStepExtend;
}

@Override
public void visit(BLangXMLFilterStepExtend xmlFilterStepExtend) {
result = xmlFilterStepExtend;
}

@Override
public void visit(BLangIndexBasedAccess.BLangJSONAccessExpr jsonAccessExpr) {
jsonAccessExpr.indexExpr = rewriteExpr(jsonAccessExpr.indexExpr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1895,7 +1895,6 @@ public void visit(BLangIndexBasedAccess.BLangXMLAccessExpr xmlIndexAccessExpr) {
result = xmlIndexAccessExpr;
}


@Override
public void visit(BLangXMLElementAccess xmlElementAccess) {
xmlElementAccess.expr = rewriteExpr(xmlElementAccess.expr);
Expand All @@ -1905,11 +1904,9 @@ public void visit(BLangXMLElementAccess xmlElementAccess) {
@Override
public void visit(BLangXMLNavigationAccess xmlNavigation) {
xmlNavigation.expr = rewriteExpr(xmlNavigation.expr);
xmlNavigation.childIndex = rewriteExpr(xmlNavigation.childIndex);
result = xmlNavigation;
}


@Override
public void visit(BLangIndexBasedAccess.BLangJSONAccessExpr jsonAccessExpr) {
jsonAccessExpr.indexExpr = rewriteExpr(jsonAccessExpr.indexExpr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorConstructorExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorVarRef;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangExpression;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangExtendedXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangFieldBasedAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangGroupExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangIgnoreExpr;
Expand Down Expand Up @@ -142,11 +143,15 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLCommentLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLFilterStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLIndexedStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLMethodCallStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLProcInsLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLQName;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLQuotedString;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLSequenceLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLTextLiteral;
import org.wso2.ballerinalang.compiler.tree.statements.BLangAssignment;
import org.wso2.ballerinalang.compiler.tree.statements.BLangBlockStmt;
Expand Down Expand Up @@ -1388,10 +1393,36 @@ public void visit(BLangXMLElementAccess xmlElementAccess) {
@Override
public void visit(BLangXMLNavigationAccess xmlNavigation) {
xmlNavigation.expr = rewriteExpr(xmlNavigation.expr);
xmlNavigation.childIndex = rewriteExpr(xmlNavigation.childIndex);
result = xmlNavigation;
}

@Override
public void visit(BLangExtendedXMLNavigationAccess extendedXmlNavigationAccess) {
extendedXmlNavigationAccess.stepExpr = rewriteExpr(extendedXmlNavigationAccess.stepExpr);
List<BLangXMLStepExtend> extensions = extendedXmlNavigationAccess.extensions;
for (int i = 0; i < extensions.size(); i++) {
extensions.set(i, rewrite(extensions.get(i), env));
}
result = extendedXmlNavigationAccess;
}

@Override
public void visit(BLangXMLIndexedStepExtend xmlIndexedStepExtend) {
xmlIndexedStepExtend.indexExpr = rewriteExpr(xmlIndexedStepExtend.indexExpr);
result = xmlIndexedStepExtend;
}

@Override
public void visit(BLangXMLFilterStepExtend xmlFilterStepExtend) {
result = xmlFilterStepExtend;
}

@Override
public void visit(BLangXMLMethodCallStepExtend xmlMethodCallStepExtend) {
xmlMethodCallStepExtend.invocation = rewriteExpr(xmlMethodCallStepExtend.invocation);
result = xmlMethodCallStepExtend;
}

@Override
public void visit(BLangIndexBasedAccess.BLangJSONAccessExpr jsonAccessExpr) {
jsonAccessExpr.indexExpr = rewriteExpr(jsonAccessExpr.indexExpr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangElvisExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorConstructorExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangErrorVarRef;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangExtendedXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangFieldBasedAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangGroupExpr;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangIndexBasedAccess;
Expand Down Expand Up @@ -134,9 +135,13 @@
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementFilter;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLElementLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLFilterStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLIndexedStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLMethodCallStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLNavigationAccess;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLProcInsLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLSequenceLiteral;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLStepExtend;
import org.wso2.ballerinalang.compiler.tree.expressions.BLangXMLTextLiteral;
import org.wso2.ballerinalang.compiler.tree.matchpatterns.BLangConstPattern;
import org.wso2.ballerinalang.compiler.tree.matchpatterns.BLangErrorMatchPattern;
Expand Down Expand Up @@ -874,10 +879,36 @@ public void visit(BLangXMLElementAccess xmlElementAccess) {

@Override
public void visit(BLangXMLNavigationAccess xmlNavigation) {
xmlNavigation.childIndex = rewrite(xmlNavigation.childIndex);
result = xmlNavigation;
}

@Override
public void visit(BLangExtendedXMLNavigationAccess extendedXmlNavigationAccess) {
List<BLangXMLStepExtend> extensions = extendedXmlNavigationAccess.extensions;
for (int i = 0; i < extensions.size(); i++) {
BLangXMLStepExtend extension = extensions.get(i);
extensions.set(i, rewrite(extension));
}
result = extendedXmlNavigationAccess;
}

@Override
public void visit(BLangXMLIndexedStepExtend xmlIndexedStepExtend) {
xmlIndexedStepExtend.indexExpr = rewrite(xmlIndexedStepExtend.indexExpr);
result = xmlIndexedStepExtend;
}

@Override
public void visit(BLangXMLFilterStepExtend xmlFilterStepExtend) {
result = xmlFilterStepExtend;
}

@Override
public void visit(BLangXMLMethodCallStepExtend xmlMethodCallStepExtend) {
xmlMethodCallStepExtend.invocation = rewrite(xmlMethodCallStepExtend.invocation);
result = xmlMethodCallStepExtend;
}

@Override
public void visit(BLangXMLNS xmlnsNode) {
result = xmlnsNode;
Expand Down
Loading

0 comments on commit 2b342d8

Please sign in to comment.